永发信息网

汇编语言的一个问题

答案:2  悬赏:70  手机版
解决时间 2021-04-29 03:38
  • 提问者网友:战魂
  • 2021-04-28 07:34

汇编指令系统里有个出栈指令(POP):

指令格式:POP DEST

指令功能:((SP))=>DEST

(SP)+2=>SP

(SP为堆栈指针寄存器,DEST为目的操作数)

我想问一下这里((SP))、(SP)、SP分别是什么意思?其他指令里也有这个(SP)和SP,这个还有个((SP))就以这个为例问一下,请各位帮忙回答一下,谢谢。

最佳答案
  • 五星知识达人网友:行雁书
  • 2021-04-28 09:08
SP就是sp寄存器,也就是栈指针
(sp)就是sp所存储的值
((sp))就是sp所存储的地址所存储的值

我觉得王爽那本书上其他什么都好,就这这个用括号来代表寄存器间接层次值的方法不好
初学时易混乱

简单说
sp就是字面意义的sp
(sp)等价于mov sp, 2中的sp
((sp))则等价于mov [sp], 3中的[sp]
全部回答
  • 1楼网友:英雄的欲望
  • 2021-04-28 09:44

SP是堆栈指针寄存器

POP DEST

就是把位于栈顶的字单元中的内容送入DEST

栈顶的地址最小,因为一个字=2个字节,基本的存储单元是字节

所以弹出一个字的内容后SP=SP+2

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯