. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  P69-70 一段内存既可以是代码段,也可以是数据段和栈端 勘误 这个论坛还有人在吗?  [待解决] 回复[ 3次 ]   点击[ 368次 ]  
18201505886
[帖 主]   [ 发表时间:2017-02-06 17:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2016-12-29 01:01
69页代码是这样的:(在Debug环境中)
将10000H-1001FH这段内存安排为代码段,并在里面存储如下代码:
mov ax,1000H
mov ss,ax
mov sp,0020H
mov ax,cs
mov ds,ax
mov ax,[0]
add ax,[2]
mov bx,[4]
add bx,[6]
push ax
push bx
pop ax
pop bx

设置CS=1000H,IP=0,执行这段代码。

问题:在Debug中用-t命令一步步执行的,每步执行完都会显示各个寄存器的状态还会先显示下一条是什么;执行完add ax,[2]这条指令时,除了显示各个寄存器的状态,它显示的下一条预执行命令应该是
mov bx,[4],但结果却不是,哪位大神帮帮小弟,拜谢,拜谢。
xjg1219
[第1楼]   [ 回复时间:2019-12-29 14:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2019-12-29 14:45
我也在这里碰到问题了,我还没运行到mov bx,[4]这一步,我是发现执行到mov ss,ax时,计算机自动执行了mov sp,20之后然后10017H开始处的数据就莫名其妙的改变了,想不通为什么。哪位大神解释一下?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved