@nockdev/awf 6.2.6 → 6.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/config.yaml +2 -2
- package/.agent/core/AGENT_BEHAVIOR.md +1 -1
- package/.agent/core/AUDIT_POLICY.md +1 -1
- package/.agent/core/CACHE.md +1 -1
- package/.agent/core/DATA_SAFETY.md +1 -1
- package/.agent/core/MEMORY_PATHS.yaml +2 -2
- package/.agent/core/PERMISSIONS.md +1 -1
- package/.agent/core/README.md +1 -1
- package/.agent/core/VERSION.yaml +4 -4
- package/.agent/core/archive/ACTIVE_MEMORY.yaml +2 -2
- package/.agent/core/archive/CHECKPOINT.yaml +2 -2
- package/.agent/core/archive/CLEANUP_ENGINE.yaml +2 -2
- package/.agent/core/archive/CONTEXT_INJECTOR.yaml +2 -2
- package/.agent/core/archive/CONTEXT_LOADER.yaml +1 -1
- package/.agent/core/archive/CONTEXT_OPTIMIZATION.yaml +1 -1
- package/.agent/core/archive/CONTEXT_PRIORITY.yaml +2 -2
- package/.agent/core/archive/FLOW_ENGINE.yaml +1 -1
- package/.agent/core/archive/GRAPH_MEMORY.yaml +1 -1
- package/.agent/core/archive/HYBRID_ROUTER.yaml +1 -1
- package/.agent/core/archive/INTENT_DETECTION.yaml +1 -1
- package/.agent/core/archive/MEMORY_CONSOLIDATION.yaml +3 -3
- package/.agent/core/archive/MEMORY_ENGINE.yaml +2 -2
- package/.agent/core/archive/MEMORY_UTILS.yaml +1 -1
- package/.agent/core/archive/REFLECTION_ENGINE.yaml +1 -1
- package/.agent/core/archive/ROUTER.yaml +4 -4
- package/.agent/core/archive/SCORING_FORMULA.yaml +2 -2
- package/.agent/core/archive/SEMANTIC_ENGINE.yaml +1 -1
- package/.agent/core/archive/SKILLS_FLOW.yaml +1 -1
- package/.agent/core/archive/STATE_MACHINE.yaml +1 -1
- package/.agent/core/archive/SUMMARIZATION_ENGINE.yaml +2 -2
- package/.agent/core/archive/TOKEN_BUDGETS.yaml +2 -2
- package/.agent/core/archive/TOKEN_LOADING.yaml +2 -2
- package/.agent/core/archive/TOKEN_SUMMARY.yaml +2 -2
- package/.agent/core/reference/CODING_STYLES.yaml +1 -1
- package/.agent/core/reference/LIBRARY_REGISTRY.yaml +1 -1
- package/.agent/core/reference/MCP_TOOLS.yaml +2 -2
- package/.agent/core/reference/PATTERNS.yaml +1 -1
- package/.agent/core/reference/SKILL_SCHEMA.yaml +1 -1
- package/.agent/i18n/en.yaml +6 -6
- package/.agent/i18n/vi.yaml +6 -6
- package/.agent/ide/README.md +1 -1
- package/.agent/ide/amazonq.json +1 -1
- package/.agent/ide/amp.json +1 -1
- package/.agent/ide/antigravity.json +1 -1
- package/.agent/ide/augment.json +1 -1
- package/.agent/ide/claude.json +1 -1
- package/.agent/ide/cline.json +1 -1
- package/.agent/ide/cody.json +1 -1
- package/.agent/ide/continue.json +1 -1
- package/.agent/ide/cursor.json +1 -1
- package/.agent/ide/gemini.json +1 -1
- package/.agent/ide/jetbrains.json +1 -1
- package/.agent/ide/kiro.json +1 -1
- package/.agent/ide/opencode.json +1 -1
- package/.agent/ide/roo.json +1 -1
- package/.agent/ide/tabnine.json +1 -1
- package/.agent/ide/trae.json +1 -1
- package/.agent/ide/vscode.json +1 -1
- package/.agent/ide/windsurf.json +1 -1
- package/.agent/ide/zed.json +1 -1
- package/.agent/manifest.yaml +1 -1
- package/.agent/personas/README.md +1 -1
- package/.agent/personas/architect.md +1 -1
- package/.agent/personas/auditor.md +1 -1
- package/.agent/personas/debugger.md +1 -1
- package/.agent/personas/developer.md +1 -1
- package/.agent/personas/devops.md +1 -1
- package/.agent/personas/documenter.md +1 -1
- package/.agent/personas/orchestrator.md +1 -1
- package/.agent/personas/persona.schema.yaml +1 -1
- package/.agent/personas/planner.md +1 -1
- package/.agent/personas/researcher.md +1 -1
- package/.agent/personas/security.md +1 -1
- package/.agent/personas/tester.md +1 -1
- package/.agent/rules/README.md +1 -1
- package/.agent/rules/archive/constitutional/tier-0-core.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-1-safety.yaml +5 -5
- package/.agent/rules/archive/constitutional/tier-2-execution.yaml +6 -6
- package/.agent/rules/archive/context-management.yaml +1 -1
- package/.agent/rules/archive/duplication-prevention.md +1 -1
- package/.agent/rules/archive/evidence.yaml +1 -1
- package/.agent/rules/archive/project-detection.md +1 -1
- package/.agent/rules/archive/reflection.yaml +1 -1
- package/.agent/rules/archive/versioning.yaml +5 -5
- package/.agent/rules/data/build-systems.yaml +2 -2
- package/.agent/rules/modules/agent-delegation.yaml +2 -2
- package/.agent/rules/modules/edit-verification.yaml +1 -1
- package/.agent/rules/modules/git-workflow.yaml +1 -1
- package/.agent/rules/modules/language.yaml +1 -1
- package/.agent/rules/modules/online-research.yaml +1 -1
- package/.agent/rules/modules/performance-optimization.yaml +2 -2
- package/.agent/rules/modules/quality.yaml +1 -1
- package/.agent/rules/modules/stop-conditions.yaml +1 -1
- package/.agent/rules/modules/terminal-safety.yaml +1 -1
- package/.agent/rules/modules/yagni.yaml +1 -1
- package/.agent/rules/validation-framework.md +1 -1
- package/.agent/skills/README.md +1 -1
- package/.agent/skills/_categories.yaml +2 -2
- package/.agent/skills/ai-ml/rag-patterns/META.yaml +2 -0
- package/.agent/skills/core/api-design/META.yaml +1 -1
- package/.agent/skills/core/authentication/META.yaml +1 -1
- package/.agent/skills/core/error-handling/META.yaml +1 -1
- package/.agent/skills/core/logging/META.yaml +1 -1
- package/.agent/skills/core/observability/META.yaml +1 -1
- package/.agent/skills/core/security/META.yaml +1 -1
- package/.agent/skills/core/security/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/accessibility/META.yaml +1 -1
- package/.agent/skills/cross-cutting/audit-pro/META.yaml +9 -1
- package/.agent/skills/cross-cutting/audit-pro/SKILL.md +61 -5
- package/.agent/skills/cross-cutting/bun/META.yaml +17 -8
- package/.agent/skills/cross-cutting/bun/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/coding-rules/META.yaml +1 -1
- package/.agent/skills/cross-cutting/database/META.yaml +42 -1
- package/.agent/skills/cross-cutting/database/SKILL.md +44 -628
- package/.agent/skills/cross-cutting/database/references/nosql-patterns.md +194 -0
- package/.agent/skills/cross-cutting/database/references/orms-patterns.md +278 -0
- package/.agent/skills/cross-cutting/database/references/postgresql.md +144 -0
- package/.agent/skills/cross-cutting/deno/META.yaml +19 -10
- package/.agent/skills/cross-cutting/deno/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/domyh-design/META.yaml +1 -1
- package/.agent/skills/cross-cutting/domyh-design/data/desktop-colors.yaml +1 -1
- package/.agent/skills/cross-cutting/electron/SKILL.md +15 -616
- package/.agent/skills/cross-cutting/electron/references/ipc-testing.md +114 -0
- package/.agent/skills/cross-cutting/electron/references/native-integrations.md +216 -0
- package/.agent/skills/cross-cutting/electron/references/performance-accessibility.md +118 -0
- package/.agent/skills/cross-cutting/electron/references/updates-persistence.md +165 -0
- package/.agent/skills/cross-cutting/seo/META.yaml +1 -1
- package/.agent/skills/cross-cutting/skill-creator/META.yaml +37 -0
- package/.agent/skills/cross-cutting/skill-creator/SKILL.md +163 -0
- package/.agent/skills/cross-cutting/skill-creator/references/patterns.md +58 -0
- package/.agent/skills/cross-cutting/skill-creator/references/schema-v2.md +44 -0
- package/.agent/skills/cross-cutting/sql/META.yaml +1 -1
- package/.agent/skills/cross-cutting/sql/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tailwind/META.yaml +1 -1
- package/.agent/skills/cross-cutting/tailwind/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +1 -1
- package/.agent/skills/cross-cutting/testing/META.yaml +7 -1
- package/.agent/skills/cross-cutting/testing/SKILL.md +1 -1
- package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/META.yaml +1 -1
- package/.agent/skills/cross-cutting/web-perf/SKILL.md +1 -1
- package/.agent/skills/devops/aws/META.yaml +1 -1
- package/.agent/skills/devops/aws/SKILL.md +101 -16
- package/.agent/skills/devops/azure/SKILL.md +96 -30
- package/.agent/skills/devops/ci-cd/META.yaml +1 -1
- package/.agent/skills/devops/ci-cd/SKILL.md +114 -8
- package/.agent/skills/devops/docker/META.yaml +1 -1
- package/.agent/skills/devops/docker/SKILL.md +96 -8
- package/.agent/skills/devops/gcp/SKILL.md +106 -30
- package/.agent/skills/devops/kubernetes/META.yaml +1 -1
- package/.agent/skills/devops/kubernetes/SKILL.md +125 -8
- package/.agent/skills/frameworks/angular/META.yaml +1 -1
- package/.agent/skills/frameworks/angular/SKILL.md +1 -1
- package/.agent/skills/frameworks/flutter/META.yaml +1 -1
- package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
- package/.agent/skills/frameworks/nextjs/META.yaml +1 -1
- package/.agent/skills/frameworks/nextjs/SKILL.md +1 -1
- package/.agent/skills/frameworks/nuxt/META.yaml +1 -1
- package/.agent/skills/frameworks/nuxt/SKILL.md +1 -1
- package/.agent/skills/frameworks/react/META.yaml +1 -1
- package/.agent/skills/frameworks/react/SKILL.md +24 -1
- package/.agent/skills/frameworks/react-native/META.yaml +1 -1
- package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
- package/.agent/skills/frameworks/svelte/META.yaml +1 -1
- package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
- package/.agent/skills/frameworks/vue/META.yaml +1 -1
- package/.agent/skills/frameworks/vue/SKILL.md +1 -1
- package/.agent/skills/index.json +2 -2
- package/.agent/skills/languages/asm/META.yaml +1 -1
- package/.agent/skills/languages/asm/SKILL.md +27 -436
- package/.agent/skills/languages/asm/references/advanced-architectures.md +191 -0
- package/.agent/skills/languages/asm/references/build-structure.md +150 -0
- package/.agent/skills/languages/asm/references/simd-programming.md +92 -0
- package/.agent/skills/languages/c/META.yaml +1 -1
- package/.agent/skills/languages/c/SKILL.md +14 -356
- package/.agent/skills/languages/c/references/data-structures.md +63 -0
- package/.agent/skills/languages/c/references/memory-management.md +74 -0
- package/.agent/skills/languages/c/references/platform-headers.md +230 -0
- package/.agent/skills/languages/clojure/META.yaml +1 -1
- package/.agent/skills/languages/clojure/SKILL.md +1 -1
- package/.agent/skills/languages/cpp/META.yaml +1 -1
- package/.agent/skills/languages/cpp/SKILL.md +22 -753
- package/.agent/skills/languages/cpp/references/headers-optimization.md +229 -0
- package/.agent/skills/languages/cpp/references/memory-concurrency.md +85 -0
- package/.agent/skills/languages/cpp/references/modern-cpp-features.md +126 -0
- package/.agent/skills/languages/cpp/references/platform-headers.md +202 -0
- package/.agent/skills/languages/cpp/references/stl-containers.md +57 -0
- package/.agent/skills/languages/crystal/META.yaml +1 -1
- package/.agent/skills/languages/crystal/SKILL.md +1 -1
- package/.agent/skills/languages/csharp/META.yaml +1 -1
- package/.agent/skills/languages/csharp/SKILL.md +1 -1
- package/.agent/skills/languages/elixir/META.yaml +1 -1
- package/.agent/skills/languages/elixir/SKILL.md +1 -1
- package/.agent/skills/languages/fsharp/META.yaml +1 -1
- package/.agent/skills/languages/fsharp/SKILL.md +1 -1
- package/.agent/skills/languages/go/META.yaml +1 -1
- package/.agent/skills/languages/go/SKILL.md +1 -1
- package/.agent/skills/languages/haskell/META.yaml +1 -1
- package/.agent/skills/languages/haskell/SKILL.md +1 -1
- package/.agent/skills/languages/java/META.yaml +1 -1
- package/.agent/skills/languages/java/SKILL.md +1 -1
- package/.agent/skills/languages/javascript/META.yaml +1 -1
- package/.agent/skills/languages/javascript/SKILL.md +1 -1
- package/.agent/skills/languages/julia/META.yaml +1 -1
- package/.agent/skills/languages/julia/SKILL.md +1 -1
- package/.agent/skills/languages/kotlin/META.yaml +1 -1
- package/.agent/skills/languages/kotlin/SKILL.md +1 -1
- package/.agent/skills/languages/lua/META.yaml +1 -1
- package/.agent/skills/languages/lua/SKILL.md +3 -3
- package/.agent/skills/languages/nim/META.yaml +1 -1
- package/.agent/skills/languages/nim/SKILL.md +1 -1
- package/.agent/skills/languages/ocaml/META.yaml +1 -1
- package/.agent/skills/languages/ocaml/SKILL.md +1 -1
- package/.agent/skills/languages/perl/META.yaml +1 -1
- package/.agent/skills/languages/perl/SKILL.md +1 -1
- package/.agent/skills/languages/php/META.yaml +1 -1
- package/.agent/skills/languages/php/SKILL.md +1 -1
- package/.agent/skills/languages/python/META.yaml +1 -1
- package/.agent/skills/languages/python/SKILL.md +1 -1
- package/.agent/skills/languages/r/META.yaml +1 -1
- package/.agent/skills/languages/r/SKILL.md +1 -1
- package/.agent/skills/languages/ruby/META.yaml +1 -1
- package/.agent/skills/languages/ruby/SKILL.md +1 -1
- package/.agent/skills/languages/rust/META.yaml +1 -1
- package/.agent/skills/languages/rust/SKILL.md +1 -1
- package/.agent/skills/languages/scala/META.yaml +1 -1
- package/.agent/skills/languages/scala/SKILL.md +1 -1
- package/.agent/skills/languages/solidity/META.yaml +1 -1
- package/.agent/skills/languages/solidity/SKILL.md +1 -1
- package/.agent/skills/languages/swift/META.yaml +1 -1
- package/.agent/skills/languages/swift/SKILL.md +1 -1
- package/.agent/skills/languages/typescript/META.yaml +19 -1
- package/.agent/skills/languages/typescript/SKILL.md +23 -1
- package/.agent/skills/languages/zig/META.yaml +1 -1
- package/.agent/skills/languages/zig/SKILL.md +1 -1
- package/.agent/templates/README.md +2 -2
- package/.agent/templates/chains/feature/step1-requirements.md +76 -0
- package/.agent/templates/chains/feature/step2-design.md +75 -0
- package/.agent/templates/chains/feature/step3-planning.md +81 -0
- package/.agent/templates/chains/feature/step4-implementation.md +74 -0
- package/.agent/templates/chains/feature/step5-testing.md +81 -0
- package/.agent/templates/debug-report.md +1 -1
- package/.agent/templates/deploy-plan.md +1 -1
- package/.agent/templates/doc-template.md +1 -1
- package/.agent/templates/feature-lifecycle.md +53 -0
- package/.agent/templates/index.yaml +53 -2
- package/.agent/templates/migrate-plan.md +1 -1
- package/.agent/templates/phase-template.md +1 -1
- package/.agent/templates/tasks/audit.yaml +1 -1
- package/.agent/templates/tasks/bug_fix.yaml +1 -1
- package/.agent/templates/tasks/code_implementation.yaml +1 -1
- package/.agent/templates/tasks/feature_development.yaml +89 -0
- package/.agent/templates/tasks/refactor.yaml +1 -1
- package/.agent/templates/test-report.md +1 -1
- package/.agent/workflows/doctor.md +124 -0
- package/.agent/workflows/feature.md +130 -0
- package/.agent/workflows/help.md +7 -5
- package/dist/commands/install.js +1 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/constants/ide-install-specs.js +30 -30
- package/dist/constants/ide-install-specs.js.map +1 -1
- package/dist/constants/ides.d.ts.map +1 -1
- package/dist/constants/ides.js +7 -5
- package/dist/constants/ides.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/types/ide-install.d.ts +1 -1
- package/dist/types/ide-install.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
## 🏛️ Legacy Assemblers & DOS
|
|
2
|
+
|
|
3
|
+
### Assembler Comparison
|
|
4
|
+
|
|
5
|
+
| Assembler | Syntax | Linker | 16-bit | Direct .COM | Best For |
|
|
6
|
+
| --------- | --------- | ------ | ------ | ----------- | --------------------- |
|
|
7
|
+
| **NASM** | Intel | LD/GCC | ✅ | ✅ | Cross-platform |
|
|
8
|
+
| **MASM** | Intel | LINK | ✅ | ❌ | Windows/Visual Studio |
|
|
9
|
+
| **GAS** | AT&T | LD | ✅ | ❌ | GCC/Linux ecosystem |
|
|
10
|
+
| **TASM** | Intel | TLINK | ✅ | ✅ | DOS + Turbo Debugger |
|
|
11
|
+
| **FASM** | Intel | None | ✅ | ✅ | Self-contained, fast |
|
|
12
|
+
| **A86** | Custom | None | ✅ | ✅ | Simple DOS programs |
|
|
13
|
+
| **YASM** | NASM-like | LD | ✅ | ✅ | NASM alternative |
|
|
14
|
+
| **HLA** | High-lvl | Link | ❌ | ❌ | Learning ASM |
|
|
15
|
+
|
|
16
|
+
### 16-bit Real Mode (8086/8088)
|
|
17
|
+
|
|
18
|
+
```asm
|
|
19
|
+
; NASM 16-bit DOS .COM program
|
|
20
|
+
org 0x100 ; .COM files load at 100h
|
|
21
|
+
|
|
22
|
+
section .text
|
|
23
|
+
start:
|
|
24
|
+
mov ah, 09h ; DOS print string
|
|
25
|
+
mov dx, message
|
|
26
|
+
int 21h
|
|
27
|
+
|
|
28
|
+
mov ah, 4Ch ; DOS exit
|
|
29
|
+
int 21h
|
|
30
|
+
|
|
31
|
+
section .data
|
|
32
|
+
message db "Hello, DOS!", 13, 10, "$"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### DOSBox Development Setup
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
setup:
|
|
39
|
+
1. Install DOSBox/DOSBox-X
|
|
40
|
+
2. Mount work directory: mount c c:\asm
|
|
41
|
+
3. Install assembler (TASM/MASM/NASM)
|
|
42
|
+
4. Use DEBUG.EXE or Turbo Debugger
|
|
43
|
+
|
|
44
|
+
debuggers:
|
|
45
|
+
DEBUG.EXE: "Built-in DOS debugger (line-oriented)"
|
|
46
|
+
Turbo Debugger: "Full-screen, source-level debugging"
|
|
47
|
+
D86: "A86's companion debugger"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### CPU Evolution (16 → 32 → 64-bit)
|
|
51
|
+
|
|
52
|
+
| CPU | Year | Bits | Address | Mode | Memory |
|
|
53
|
+
| ------- | ---- | ---- | ------- | ------------ | ------ |
|
|
54
|
+
| 8086 | 1978 | 16 | 20-bit | Real | 1 MB |
|
|
55
|
+
| 8088 | 1979 | 16 | 20-bit | Real | 1 MB |
|
|
56
|
+
| 80286 | 1982 | 16 | 24-bit | Real/Prot | 16 MB |
|
|
57
|
+
| 80386 | 1985 | 32 | 32-bit | Real/Prot/V8 | 4 GB |
|
|
58
|
+
| 80486 | 1989 | 32 | 32-bit | Real/Prot/V8 | 4 GB |
|
|
59
|
+
| Pentium | 1993 | 32 | 32-bit | Real/Prot/V8 | 4 GB |
|
|
60
|
+
| x64 | 2003 | 64 | 48-bit | Long | 256 TB |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 🆕 RISC-V Assembly
|
|
65
|
+
|
|
66
|
+
### Register Map (RV64I)
|
|
67
|
+
|
|
68
|
+
| ABI Name | Reg | Role | Preserved |
|
|
69
|
+
| -------- | ------ | --------------- | --------- |
|
|
70
|
+
| zero | x0 | Hard-wired zero | N/A |
|
|
71
|
+
| ra | x1 | Return address | No |
|
|
72
|
+
| sp | x2 | Stack pointer | Yes |
|
|
73
|
+
| gp | x3 | Global pointer | N/A |
|
|
74
|
+
| tp | x4 | Thread pointer | N/A |
|
|
75
|
+
| t0-t2 | x5-7 | Temporaries | No |
|
|
76
|
+
| s0/fp | x8 | Saved/Frame ptr | Yes |
|
|
77
|
+
| s1 | x9 | Saved register | Yes |
|
|
78
|
+
| a0-a7 | x10-17 | Args / Return | No |
|
|
79
|
+
| s2-s11 | x18-27 | Saved registers | Yes |
|
|
80
|
+
| t3-t6 | x28-31 | Temporaries | No |
|
|
81
|
+
|
|
82
|
+
### Calling Convention
|
|
83
|
+
|
|
84
|
+
```asm
|
|
85
|
+
# RISC-V function example
|
|
86
|
+
my_function:
|
|
87
|
+
addi sp, sp, -16 # Allocate stack
|
|
88
|
+
sd ra, 8(sp) # Save return address
|
|
89
|
+
sd s0, 0(sp) # Save s0
|
|
90
|
+
|
|
91
|
+
# ... function body ...
|
|
92
|
+
# Args in a0-a7, return in a0/a1
|
|
93
|
+
|
|
94
|
+
ld s0, 0(sp) # Restore s0
|
|
95
|
+
ld ra, 8(sp) # Restore ra
|
|
96
|
+
addi sp, sp, 16 # Deallocate
|
|
97
|
+
ret
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Common Extensions
|
|
101
|
+
|
|
102
|
+
| Ext | Description |
|
|
103
|
+
| --- | ------------------- |
|
|
104
|
+
| M | Multiply/Divide |
|
|
105
|
+
| A | Atomics |
|
|
106
|
+
| F | Single-precision FP |
|
|
107
|
+
| D | Double-precision FP |
|
|
108
|
+
| C | Compressed (16-bit) |
|
|
109
|
+
| V | Vector extension |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 🆕 Intel AVX10 & AMX (2025-2026)
|
|
114
|
+
|
|
115
|
+
### AVX10.2 (June 2025)
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
features:
|
|
119
|
+
- Mixed-precision: FP16, BF16 operations
|
|
120
|
+
- IEEE-754-2019 NaN propagation
|
|
121
|
+
- Unified P-core/E-core support
|
|
122
|
+
- Embedded rounding in 256-bit mode
|
|
123
|
+
- 32 vector registers (ZMM0-31)
|
|
124
|
+
|
|
125
|
+
detection:
|
|
126
|
+
CPUID: Check AVX10 version via CPUID.07H
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Intel AMX (Sapphire Rapids+)
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
description: "Accelerate matrix operations for AI/ML"
|
|
133
|
+
|
|
134
|
+
tiles:
|
|
135
|
+
count: 8 (TMM0-TMM7)
|
|
136
|
+
max_size: 16 rows × 64 bytes
|
|
137
|
+
|
|
138
|
+
data_types:
|
|
139
|
+
- BF16 (Brain Float 16)
|
|
140
|
+
- INT8 (8-bit integer)
|
|
141
|
+
- FP16 (Half precision)
|
|
142
|
+
|
|
143
|
+
speedup: "Up to 10x for deep learning"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### AMX Intrinsics Example
|
|
147
|
+
|
|
148
|
+
```c
|
|
149
|
+
#include <immintrin.h>
|
|
150
|
+
|
|
151
|
+
void amx_matmul_bf16(void* c, void* a, void* b) {
|
|
152
|
+
_tile_loadd(0, a, 64); // Load A → TMM0
|
|
153
|
+
_tile_loadd(1, b, 64); // Load B → TMM1
|
|
154
|
+
_tile_dpbf16ps(2, 0, 1); // C += A × B (BF16)
|
|
155
|
+
_tile_stored(2, c, 64); // Store result
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 🛠️ Modern IDE Tools (2025-2026)
|
|
162
|
+
|
|
163
|
+
### VS Code Extensions
|
|
164
|
+
|
|
165
|
+
| Extension | Purpose |
|
|
166
|
+
| ------------------------- | ---------------------- |
|
|
167
|
+
| `ms-vscode.cpptools` | C/C++ IntelliSense |
|
|
168
|
+
| `maziac.asm-code-lens` | ASM syntax + debugging |
|
|
169
|
+
| `dan-c-underwood.arm` | ARM assembly support |
|
|
170
|
+
| `13xforever.language-x86` | x86/x64 syntax |
|
|
171
|
+
| `Cortex-Debug` | ARM embedded debugging |
|
|
172
|
+
|
|
173
|
+
### ARM-Specific Tools
|
|
174
|
+
|
|
175
|
+
| Tool | Description |
|
|
176
|
+
| -------------- | ------------------------------- |
|
|
177
|
+
| ArmLS | ARM64 language server (LSP) |
|
|
178
|
+
| Arm Dev Studio | Full IDE + Performance Analyzer |
|
|
179
|
+
| QEMU | ARM64/RISC-V emulation |
|
|
180
|
+
|
|
181
|
+
### Online Assembly Tools
|
|
182
|
+
|
|
183
|
+
| Tool | URL |
|
|
184
|
+
| ------------------ | ------------------------ |
|
|
185
|
+
| Compiler Explorer | godbolt.org |
|
|
186
|
+
| ASM Editor (specy) | asm-editor.specy.app |
|
|
187
|
+
| onlinegdb | onlinegdb.com/online_asm |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
_DOMYH Awesome Code Assembly Language Skill Comprehensive Guide_
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
## 📄 Program Structure Templates
|
|
2
|
+
|
|
3
|
+
### NASM (Linux x64)
|
|
4
|
+
|
|
5
|
+
```asm
|
|
6
|
+
; program.asm
|
|
7
|
+
section .data
|
|
8
|
+
msg db "Hello, World!", 10
|
|
9
|
+
len equ $ - msg
|
|
10
|
+
|
|
11
|
+
section .bss
|
|
12
|
+
buffer resb 256
|
|
13
|
+
|
|
14
|
+
section .text
|
|
15
|
+
global _start
|
|
16
|
+
|
|
17
|
+
_start:
|
|
18
|
+
; sys_write(1, msg, len)
|
|
19
|
+
mov rax, 1 ; syscall: write
|
|
20
|
+
mov rdi, 1 ; fd: stdout
|
|
21
|
+
mov rsi, msg ; buffer
|
|
22
|
+
mov rdx, len ; count
|
|
23
|
+
syscall
|
|
24
|
+
|
|
25
|
+
; sys_exit(0)
|
|
26
|
+
mov rax, 60 ; syscall: exit
|
|
27
|
+
xor rdi, rdi ; status: 0
|
|
28
|
+
syscall
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### MASM (Windows x64)
|
|
32
|
+
|
|
33
|
+
```asm
|
|
34
|
+
; program.asm
|
|
35
|
+
.data
|
|
36
|
+
msg db "Hello, World!", 0
|
|
37
|
+
|
|
38
|
+
.code
|
|
39
|
+
externdef printf:proc
|
|
40
|
+
|
|
41
|
+
main PROC
|
|
42
|
+
sub rsp, 40 ; Shadow space + alignment
|
|
43
|
+
lea rcx, msg ; First arg
|
|
44
|
+
call printf
|
|
45
|
+
add rsp, 40
|
|
46
|
+
xor eax, eax ; Return 0
|
|
47
|
+
ret
|
|
48
|
+
main ENDP
|
|
49
|
+
|
|
50
|
+
END
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### GAS (ARM64)
|
|
54
|
+
|
|
55
|
+
```asm
|
|
56
|
+
// program.s
|
|
57
|
+
.data
|
|
58
|
+
msg: .ascii "Hello, World!\n"
|
|
59
|
+
len = . - msg
|
|
60
|
+
|
|
61
|
+
.text
|
|
62
|
+
.global _start
|
|
63
|
+
|
|
64
|
+
_start:
|
|
65
|
+
mov x8, #64 // sys_write
|
|
66
|
+
mov x0, #1 // fd: stdout
|
|
67
|
+
ldr x1, =msg // buffer
|
|
68
|
+
mov x2, #len // count
|
|
69
|
+
svc #0
|
|
70
|
+
|
|
71
|
+
mov x8, #93 // sys_exit
|
|
72
|
+
mov x0, #0 // status
|
|
73
|
+
svc #0
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 🔨 Build Commands
|
|
79
|
+
|
|
80
|
+
### NASM + LD (Linux)
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Compile
|
|
84
|
+
nasm -f elf64 program.asm -o program.o
|
|
85
|
+
|
|
86
|
+
# Link
|
|
87
|
+
ld program.o -o program
|
|
88
|
+
|
|
89
|
+
# Or with C runtime
|
|
90
|
+
nasm -f elf64 program.asm -o program.o
|
|
91
|
+
gcc program.o -o program -no-pie
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### MASM + MSVC (Windows)
|
|
95
|
+
|
|
96
|
+
```powershell
|
|
97
|
+
# Compile ASM
|
|
98
|
+
ml64 /c program.asm /Fo program.obj
|
|
99
|
+
|
|
100
|
+
# Link with C++ code
|
|
101
|
+
cl /c main.cpp
|
|
102
|
+
link main.obj program.obj /OUT:main.exe
|
|
103
|
+
|
|
104
|
+
# Or combined in Visual Studio project
|
|
105
|
+
# Just add .asm file after enabling MASM build customization
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### GAS + GCC (Cross-platform)
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Compile
|
|
112
|
+
as program.s -o program.o
|
|
113
|
+
|
|
114
|
+
# Link
|
|
115
|
+
ld program.o -o program
|
|
116
|
+
|
|
117
|
+
# Or with GCC
|
|
118
|
+
gcc -c program.s -o program.o
|
|
119
|
+
gcc main.c program.o -o main
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### CMake Integration
|
|
123
|
+
|
|
124
|
+
```cmake
|
|
125
|
+
# Enable ASM
|
|
126
|
+
enable_language(ASM_NASM)
|
|
127
|
+
# or
|
|
128
|
+
enable_language(ASM_MASM)
|
|
129
|
+
|
|
130
|
+
# Add ASM sources
|
|
131
|
+
add_executable(myprogram
|
|
132
|
+
main.cpp
|
|
133
|
+
asm_routines.asm
|
|
134
|
+
)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## ✅ Best Practices Checklist
|
|
140
|
+
|
|
141
|
+
- [ ] **Avoid inline ASM if possible** Use intrinsics, compiler optimizations
|
|
142
|
+
- [ ] **Profile before optimizing** Don't guess, measure
|
|
143
|
+
- [ ] **Keep ASM sections minimal** Maintain only critical paths
|
|
144
|
+
- [ ] **Use runtime CPU detection** Support multiple instruction sets
|
|
145
|
+
- [ ] **Align data properly** 16/32/64-byte for SIMD operations
|
|
146
|
+
- [ ] **Follow calling conventions** Preserve callee-saved registers
|
|
147
|
+
- [ ] **Document thoroughly** ASM is harder to understand
|
|
148
|
+
- [ ] **Test on target hardware** SIMD behavior varies
|
|
149
|
+
|
|
150
|
+
---
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
## ⚡ SIMD Programming
|
|
2
|
+
|
|
3
|
+
### Intrinsics vs Inline ASM Decision
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
recommendation:
|
|
7
|
+
use_intrinsics:
|
|
8
|
+
- Portable across compilers
|
|
9
|
+
- Compiler can optimize around them
|
|
10
|
+
- Easier to maintain
|
|
11
|
+
- Better for SSE/AVX/AVX-512
|
|
12
|
+
|
|
13
|
+
use_inline_asm:
|
|
14
|
+
- CPU-specific features not in intrinsics
|
|
15
|
+
- Precise instruction control needed
|
|
16
|
+
- Very small, critical code paths
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### SSE/AVX Intrinsics Example
|
|
20
|
+
|
|
21
|
+
```c
|
|
22
|
+
#include <immintrin.h>
|
|
23
|
+
|
|
24
|
+
// Add 8 floats using AVX
|
|
25
|
+
void vector_add_avx(float* result, const float* a, const float* b) {
|
|
26
|
+
__m256 va = _mm256_load_ps(a); // Load 8 floats from a
|
|
27
|
+
__m256 vb = _mm256_load_ps(b); // Load 8 floats from b
|
|
28
|
+
__m256 vr = _mm256_add_ps(va, vb); // Add
|
|
29
|
+
_mm256_store_ps(result, vr); // Store result
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Dot product using SSE
|
|
33
|
+
float dot_product_sse(const float* a, const float* b, int n) {
|
|
34
|
+
__m128 sum = _mm_setzero_ps();
|
|
35
|
+
for (int i = 0; i < n; i += 4) {
|
|
36
|
+
__m128 va = _mm_load_ps(&a[i]);
|
|
37
|
+
__m128 vb = _mm_load_ps(&b[i]);
|
|
38
|
+
sum = _mm_add_ps(sum, _mm_mul_ps(va, vb));
|
|
39
|
+
}
|
|
40
|
+
// Horizontal add
|
|
41
|
+
sum = _mm_hadd_ps(sum, sum);
|
|
42
|
+
sum = _mm_hadd_ps(sum, sum);
|
|
43
|
+
return _mm_cvtss_f32(sum);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Runtime CPU Feature Detection
|
|
48
|
+
|
|
49
|
+
```c
|
|
50
|
+
#include <cpuid.h> // GCC/Clang
|
|
51
|
+
|
|
52
|
+
bool has_avx2(void) {
|
|
53
|
+
unsigned int eax, ebx, ecx, edx;
|
|
54
|
+
__cpuid(7, eax, ebx, ecx, edx);
|
|
55
|
+
return (ebx & (1 << 5)) != 0; // AVX2 bit
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Dispatch based on CPU features
|
|
59
|
+
void process_data(float* data, int n) {
|
|
60
|
+
if (has_avx2()) {
|
|
61
|
+
process_avx2(data, n);
|
|
62
|
+
} else if (has_sse4()) {
|
|
63
|
+
process_sse4(data, n);
|
|
64
|
+
} else {
|
|
65
|
+
process_scalar(data, n);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### ARM64 NEON Intrinsics
|
|
71
|
+
|
|
72
|
+
```c
|
|
73
|
+
#include <arm_neon.h>
|
|
74
|
+
|
|
75
|
+
// Add 4 floats using NEON
|
|
76
|
+
void vector_add_neon(float* result, const float* a, const float* b) {
|
|
77
|
+
float32x4_t va = vld1q_f32(a); // Load 4 floats
|
|
78
|
+
float32x4_t vb = vld1q_f32(b); // Load 4 floats
|
|
79
|
+
float32x4_t vr = vaddq_f32(va, vb); // Add
|
|
80
|
+
vst1q_f32(result, vr); // Store
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Horizontal sum
|
|
84
|
+
float horizontal_sum_neon(float32x4_t v) {
|
|
85
|
+
float32x2_t sum = vadd_f32(vget_low_f32(v), vget_high_f32(v));
|
|
86
|
+
sum = vpadd_f32(sum, sum);
|
|
87
|
+
return vget_lane_f32(sum, 0);
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|