堆栈操作指令的一道题不会

[复制链接]
查看11 | 回复1 | 2016-12-1 17:30:56 | 显示全部楼层 |阅读模式
设 SP=100H,BX=586AH,给出下列指令以此执行后的结果。
push bx;ss:[00ffh]=58h,ss:[00feh]=6ah,sp=0feh
popax;ax=586ah,sp=100h
这2行看不明白,什么意思啊?

回复

使用道具 举报

千问 | 2016-12-1 17:30:56 | 显示全部楼层
ss表示堆栈段段地址,sp表示堆栈栈顶偏移地址(通常称作:栈顶指针)。进栈操作时,先把栈顶指针减2,然后把操作数(一个字,双字节)存放到这个地址,低位字节在前,高位字节在后;出栈操作时,先把栈顶指针指向的双字节数据赋给指定的寄存器,然后把栈顶指针加2。所以,指令push bx执行后,ss:[00ffh]=58h, ss:[00feh]=6ah,sp=0feh,“;”是汇编语言的注释标志符号;指令pop ax执行后,ax=586ah,sp=100h。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则