【发布时间】:2013-11-27 23:13:09
【问题描述】:
如何将内存地址从寄存器传递给其他?我的以下例程从堆栈接收字符串内存地址(是的,这是必要的),然后尝试放入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
【问题讨论】:
标签: assembly stack parameter-passing 68000 easy68k