| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1244 人关注过本帖
标题:[求助]关于POP、PUSH的几个问题
只看楼主 加入收藏
sillygirl
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-10-30
收藏
 问题点数:0 回复次数:3 
[求助]关于POP、PUSH的几个问题

各位老师:
上述例题有三个地方不明白,请指点一下,谢谢!
1、 SS:SP表示方法与执行结果表示方法不一样。如示意图一4000:0FEH 为什么在执行结果中(400FEH)=1000H表示成这样,SS最后一位0全部省略
2、 (SP)=100H-2=0FEH在这里的SP 100H在这里为什么是(0001 0000 0000H),而不是表示的0100H
3、 POP  WORD PTR [DI+2] 按照题意,从堆栈取出字,为什么结果是(100AAH)=2100H,这个100AAH是如何算出来的,


例3.12 假设(DS)=1000H, (SS)=4000H, (SP)=100H, (BX)=2100H, (12100)=00A8H, 指出连续执行下列各条指令后,有关寄存器、存储单元以及堆栈的情况。

     PUSH   DS
     PUSH   BX
     PUSH   [BX]
     POP    DI
     POP    WORD PTR [DI+2]
     POP    DS

  
执行结果: (SP)=100H-2=0FEH    (SP)=0FE-2=0FCH   (SP)=0FC-2=0FAH
      (400FEH)=1000H      (400FCH)=2100H    (400FAH)=00A8H

  
执行结果: (SP)=0FA+2=0FCH    (SP)=0FC+2=0FEH     (SP)=0FE+2=100H
      (DI)=00A8H       (100AAH)=2100H      (DS)=1000H

NF6GU9G7.rar (8.59 KB) [求助]关于POP、PUSH的几个问题


[此贴子已经被作者于2007-1-6 10:27:52编辑过]



pEehuP83.rar (9.09 KB) [求助]关于POP、PUSH的几个问题



vUJVswjU.rar (8.59 KB) [求助]关于POP、PUSH的几个问题

搜索更多相关主题的帖子: POP PUSH 堆栈 PTR 
2007-01-06 10:17
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
总结出一句话,到底哪个地方不明白,少举烦琐的例子,因为大多数网友(包括我)不太喜欢看这么多的内容

2007-01-06 18:51
sillygirl
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-10-30
收藏
得分:0 
以下是引用菜鸟上路在2007-1-6 18:51:32的发言:
总结出一句话,到底哪个地方不明白,少举烦琐的例子,因为大多数网友(包括我)不太喜欢看这么多的内容

谢谢菜鸟上路朋友提醒,因此题具有前因后果关系,需看附件中的图片。

我的问题就是一楼的三个问题,期待老师的解答,谢谢


2007-01-08 11:43
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
1、16位寻址方式是段地址左移4位加上偏移
2、100H不就等于0100H吗
3、还是和16位寻址方式相关。物理地址=10H*DS+DI。这里的100AAH就是物理地址,10H*DS=10H*1000H=10000H,[DI]=00A8H,所以[DI+2]=00AAH,最后得到物理地址=10000H+00AAH=100AAH

2007-01-08 13:00
快速回复:[求助]关于POP、PUSH的几个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019356 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved