;; Compile down " LIT value "
dq p_literal, p_literal, p_comma,p_quote, p_comma, p_return
- WORD p_Ccomma,'C,'
+ WORD p_Ccomma,'C,',fasm
;; ( c -- )
;; Put byte value onto the heap and advance "HERE"
- mov rax,[p_here_DFA]
+ mov rax,qword [p_here_DFA]
pop rbx
mov byte [rax],bl
inc qword [p_here_DFA]
next
- WORD p_Wcomma,'W,'
+ WORD p_Wcomma,'W,',fasm
;; ( c -- )
;; Put byte value onto the heap and advance "HERE"
- mov rax,[p_here_DFA]
+ mov rax,qword [p_here_DFA]
pop rbx
mov word [rax],bx
add qword [p_here_DFA],2
next
- WORD p_Dcomma,'D,'
+ WORD p_Dcomma,'D,',fasm
;; ( d -- )
;; Put byte value onto the heap and advance "HERE"
- mov rax,[p_here_DFA]
+ mov rax,qword [p_here_DFA]
pop rbx
mov dword [rax],ebx
add qword [p_here_DFA],4
next
- WORD p_comma,','
+ WORD p_comma,',',fasm
;; ( v -- )
;; Put byte value onto the heap and advance "HERE"
- mov rax,[p_here_DFA]
+ mov rax,qword [p_here_DFA]
pop rbx
mov qword [rax],rbx
add qword [p_here_DFA],8
;; ( addr -- v )
;; Load the (unsigned) byte v from address addr.
pop rax
- mov bl,[rax]
- push 0
- mov [rsp],bl
+ xor rbx,rbx
+ mov bl,byte [rax]
+ push rbx
next
WORD p_Cput, 'C!',fasm
;; ( addr -- v )
;; Load the (unsigned) double-byte v from address addr.
pop rax
- mov bx,[rax]
- push 0
- mov word [rsp],bx
+ xor rbx,rbx
+ mov bx,word [rax]
+ push rbx
next
WORD p_Wput, 'W!',fasm
;; ( addr -- v )
;; Load the (unsigned) double-byte v from address addr.
pop rax
- mov ebx,[rax]
- push 0
- mov dword [rsp],ebx
+ xor rbx,rbx
+ mov ebx,dword [rax]
+ push rbx
next
WORD p_Dput, 'D!',fasm