fixing new primitives
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Sat, 12 Jun 2021 13:30:12 +0000 (23:30 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Sat, 12 Jun 2021 13:30:12 +0000 (23:30 +1000)
compile.asm
memory.asm

index d99504c8131f934150d9ebc8c59dcfe358357873..e7f3090b819e18501875807d5f81d2133d9690b9 100644 (file)
@@ -57,37 +57,37 @@ p_quote_end:
        ;; 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
index eb84af7feb42e98616bdfb6e9f01d2e1a5d47333..8f8f51e9bc37193f5a4a3b6deae09512cc0df1f1 100644 (file)
@@ -70,9 +70,9 @@
        ;; ( 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
@@ -87,9 +87,9 @@
        ;; ( 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