-(sp)的含义是什么?
我正在阅读Unix V6的代码,在PDP-11的旧操作系统上.
我已经知道sp的含义了,这是堆栈指针。这和-1(sp)一样吗?
发布于 2016-09-19 01:03:26
这一答复是在向PDP-11澄清问题之前写的。我猜它看起来像一个m68k预减量寻址模式。
Michael证实PDP-11的-(SP)语法会根据操作数的大小减少1到2个字节,所以这几乎肯定是摩托罗拉语法的灵感所在。
此页解释说,-(A0)语法意味着通过操作数的宽度预先减少指针.
MOVE.L中,它会减少4 (类似于C *(sp-=4))MOVE.W中,它会减少2。MOVE.B中,它会减少1。(除非地址寄存器是A7,也就是SP,在这种情况下,它仍然减少2,因此它保持对齐!)类似地,+(A0)的工作方式与增量后操作符相同。
类似于x86的PUSH (堆栈指针的预减量)和POP (堆栈指针的增量后)。
发布于 2016-12-12 20:13:11
-(sp)的意思是在寄存器sp使用之前减少它。
因为sp是堆栈指针,这是通常的写入堆栈的方式。
mov r0,-(sp)例如,在堆栈上保存(或推送)寄存器r0,以及
mov (sp)+,r0将弹出值并再次还原寄存器。
https://stackoverflow.com/questions/39563946
复制相似问题