. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点3.2.2执行后的数据让我有点困惑,请高手指点下!  [已解决] 回复[ 3次 ]   点击[ 327次 ]  
ryan1779
[帖 主]   [ 发表时间:2009-06-30 18:40 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:5
注册日期:2009-05-25 11:39
我先用E命令把 1000:0处的数据改为23 01 66 22 00 00 00 00-00 00 00 00 00 00 33 11
然后执行执行下面的代码
mov ax,2000H
mov ds,ax
mov ax,1000H
mov ss,ax
mov sp,0
pop [e]
pop [c]
pop [a]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]

但是结果:
d 2000:0 f 
33 11 00 00 00 00 00 00-00 00 00 00 66 22 23 01

d 1000:0 f
00 10 00 10 00 10 00 10-00 00 2d 01 3b 18 c0 11

为什么10000H处的数据会是这样的呢??很不理解啊!请高人指点。。
mywiil
[第1楼]   [ 回复时间:2009-07-01 15:16 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:4
注册日期:2008-10-14 16:29
debug下跟踪的时候,T等中断指令运行过程中会用到当前栈来存放cpu运行现场的cs,ip和标志寄存器的值,所以,你站内的数据会出现变化。这也是实验2中的最后一个观察题目。这个涉及到中断知识,可以先大概留意一下,等学到中断就自然明白了。
ryan1779
[第2楼]   [ 回复时间:2009-07-02 07:50 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:5
注册日期:2009-05-25 11:39
哦,原来是这样啊,谢谢了!
ryan1779
[第3楼]   [ 回复时间:2009-07-02 07:50 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:5
注册日期:2009-05-25 11:39
此贴由 贴主 于 [ 2009-07-02 07:50 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved