如何将内存地址从寄存器传递给其他?我的以下例程从堆栈接收字符串内存地址(是的,这是必要的),然后尝试放入D1
寄存器,但它不起作用,当我尝试运行时,EASy68k模拟器崩溃(或进入无限循环?)。
代码:
START ORG $1000
MOVE.L T,D0
MOVE.L D0,-(SP)
BSR PRINTS
PRINTS:
MOVE.L D0,(SP)+
MOVE.W D0,A1
MOVE #14,D0
TRAP #15
RTS
T DC.B 'HELLO',0
END START
更新:我更新了从堆栈推送和弹出参数的方式。更改为使用PEA
看起来完全符合我要求的指令,但它仍然不起作用。
START ORG $1000
PEA T(PC)
*MOVE.L D0,-(SP)
BSR PRINTS
ADDQ.L #4,SP
MOVE #9,D0
TRAP #15
PRINTS:
MOVE 4(SP),A1
MOVE #14,D0
TRAP #15
RTS