X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=compile.asm;h=f723487f10e21d2db2aade7576dec84e4f65d392;hb=433a6cc4e7fccb418345a78de099a4e15891abcf;hp=d99504c8131f934150d9ebc8c59dcfe358357873;hpb=0a436d5323363af19679ca0a1795b996dc886cfa;p=rrq%2Frrqforth.git diff --git a/compile.asm b/compile.asm index d99504c..f723487 100644 --- a/compile.asm +++ b/compile.asm @@ -41,7 +41,7 @@ p_create_COPY: WORD p_allot,'ALLOT' ;; ( n -- ) ;; Allocate n bytes on the heap - dq p_here, p_put_plus, p_return + dq p_here, p_swap, p_put_plus, p_return WORD p_quote,"'" ;; ( "word" -- cfa ) @@ -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