From 53aed3fadf1f7ad66dea9a8a0b46bf42eda921be Mon Sep 17 00:00:00 2001 From: hachem Date: Mon, 31 Aug 2026 16:56:40 +0200 Subject: feat: add memory loads via ^reg --- docs/language.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'docs') 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 -- cgit v1.3