aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-31 16:56:40 +0200
committerhachem <im@hachem.wtf>2026-08-31 16:56:40 +0200
commit53aed3fadf1f7ad66dea9a8a0b46bf42eda921be (patch)
treeea14a08b29a18072d1e420353a39c1397f85bee2 /docs
parentf8a2d02c75df62f74e5907696d5a99a024d59018 (diff)
feat: add memory loads via ^reg
Diffstat (limited to 'docs')
-rw-r--r--docs/language.md9
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