汇编语言的问题

已知SS=000H,SP=2000H执行下面程序movcx,1234hmovdx,5678hpushcxpushdxpopcxpopdxpopcx问:1.执行完第一个po... 已知SS=000H,SP=2000H执行下面程序
mov cx,1234h
mov dx,5678h
push cx
push dx
pop cx
pop dx
pop cx

问:
1.执行完第一个pop cx后,sp=?
2.执行完pop cx后,物理地址41FFEH处的第一个字节是?
3.堆栈不是先进后出么?
4.为什么能POP两次CX

谢谢*^O^*
展开
 我来答
lxhuzz126
2013-12-25 · TA获得超过1733个赞
知道小有建树答主
回答量:833
采纳率:16%
帮助的人:266万
展开全部

  SS应该为4000H吧。


  1. SP=1FFEH

  2. (41FFEH)=34H

  3. 堆栈是先进后出,如果不是先进后出,那返回值就会发生变化。本题就是利用这个特点实现交换CX与DX寄存器的值

  4. 第二次执行POP  CX  ,说明SP=2000H不是栈底,也可以这么理解:将当前栈顶的数据弹出,送到寄存器CX中。第二次弹出的数据肯定不是原来CX入栈的数据。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式