我在汇编语言上写了swap,但我不确定我的代码是否正确,这是代码
swap: mov r1, -(sp) mov (sp) r1 mov 2(sp) (sp) mov r1 2(sp) mov (sp)+, r1 rts pc
字符串交换从堆栈接收指针
92dk7w1h1#
sp是stackpointer吗?通常有一个命令ldw rA, 0(rB)(0是偏移量,rB是你将要加载的地址,实际数据现在在rA中)。ldw加载一个完整的字到内存中,ldb加载一个字节,stw rA, 0(rB)存储一个字。mov通常将一个寄存器复制到另一个寄存器。
ldw rA, 0(rB)
stw rA, 0(rB)
mov
lymnna712#
此代码:
mov #1,-(sp) mov #2,-(sp) jsr pc,swap halt swap: mov 2(sp),-(sp) ; a,b,ret -> a,b,ret,b mov 6(sp),4(sp) ; a,b,ret,b -> a,a,ret,b mov (sp)+,4(sp) ; a,a,ret,b -> b,a,ret rts pc
字符串最好为数据堆栈使用另一个寄存器
2条答案
按热度按时间92dk7w1h1#
sp是stackpointer吗?通常有一个命令
ldw rA, 0(rB)
(0是偏移量,rB是你将要加载的地址,实际数据现在在rA中)。ldw加载一个完整的字到内存中,ldb加载一个字节,stw rA, 0(rB)
存储一个字。mov
通常将一个寄存器复制到另一个寄存器。lymnna712#
此代码:
字符串
最好为数据堆栈使用另一个寄存器