X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=stack.asm;h=5b6910b5cb3bef019f7e10336ca62a4e05194042;hb=af617c57b198d0b1e55e77ed2e67c57365007f29;hp=d26bf7b2c9d137fd2dc9a152653cbd59d33590a3;hpb=c91525c4bc19d001bbea047376549b1cf07ebbc4;p=rrq%2Frrqforth.git diff --git a/stack.asm b/stack.asm index d26bf7b..5b6910b 100644 --- a/stack.asm +++ b/stack.asm @@ -132,7 +132,7 @@ p_roll_eq: ;;; ======================================== ;;; Return stack operations - WORD p_ltR, '>R',fasm + WORD p_gtR, '>R',fasm ;; ( x -- ) ( R: -- x ) ;; Move x to the return stack. pop rax @@ -151,3 +151,12 @@ p_roll_eq: ;; Copy x from the return stack to the data stack. push qword [rbp] next + + WORD p_rsp,'R[n]',fasm + ;; ( n -- a ) + ;; push the address of the n:th cell on the return stack + mov rax,qword [rsp] + shl rax,3 + add rax,rbp + mov qword [rsp],rax + next