diff options
| author | hachem <im@hachem.wtf> | 2026-08-31 16:56:40 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-31 16:56:40 +0200 |
| commit | 53aed3fadf1f7ad66dea9a8a0b46bf42eda921be (patch) | |
| tree | ea14a08b29a18072d1e420353a39c1397f85bee2 /docs | |
| parent | f8a2d02c75df62f74e5907696d5a99a024d59018 (diff) | |
feat: add memory loads via ^reg
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/language.md | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/docs/language.md b/docs/language.md index bfb41f3..2429838 100644 --- a/docs/language.md +++ b/docs/language.md @@ -110,7 +110,14 @@ A leading size keyword sets the width explicitly. It down-converts a full regist ^byte rsi = 10 // mov byte [rsi], 10 ``` -`^` is store-only for now; loading with `rax = ^rsi` isn't supported yet. +`^reg` is also a value — it loads from that address. A size keyword loads a narrower value and zero-extends it into the target: + +```hdass +rax = ^rsi // mov rax, [rsi] +rbx = ^byte rsi // movzx rbx, byte [rsi] +rcx = ^dword rsi // mov ecx, [rsi] (32-bit load zero-extends) +rdx = ^rsi + 4 // load, then add 4 +``` ## Expressions |
