首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在unix v6程序集中-(sp)的含义是什么?

在unix v6程序集中-(sp)的含义是什么?
EN

Stack Overflow用户
提问于 2016-09-19 00:42:12
回答 2查看 718关注 0票数 0

-(sp)的含义是什么?

我正在阅读Unix V6的代码,在PDP-11的旧操作系统上.

我已经知道sp的含义了,这是堆栈指针。这和-1(sp)一样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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 (堆栈指针的增量后)

票数 3
EN

Stack Overflow用户

发布于 2016-12-12 20:13:11

-(sp)的意思是在寄存器sp使用之前减少它。

因为sp是堆栈指针,这是通常的写入堆栈的方式。

代码语言:javascript
复制
mov r0,-(sp)

例如,在堆栈上保存(或推送)寄存器r0,以及

代码语言:javascript
复制
mov (sp)+,r0

将弹出值并再次还原寄存器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39563946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档