鱼C论坛

 找回密码
 立即注册
查看: 3642|回复: 7

[已解决]关于汇编语言第三章将10000H~1001FH这段内存安排为代码段,数据段和栈段的问题

[复制链接]
发表于 2018-5-1 23:56:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码为
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:ip=1000:0

当执行到ip= 0013时,即mov bx, [4]时,图中显示的却是mov bx, [c804],,接下来的代码便中断了,想问下这是怎么回事?
最佳答案
2018-5-3 13:01:37
风不会停息 发表于 2018-5-3 10:47
那我想问下我上面调试时执行完mov ss, ax后,是什么导致内存1000:0017后的数据发生的变化呢,不太明白这 ...

你的栈太小了,debug调试程序时需要栈,因为栈太小,debug用栈时把1000:0017后的数据覆盖了
QQ截图20180501234951.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-2 13:48:40 | 显示全部楼层
栈空间太小了,入栈的数据把代码段的指令覆盖了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 23:12:31 | 显示全部楼层
人造人 发表于 2018-5-2 13:48
栈空间太小了,入栈的数据把代码段的指令覆盖了

可是指令出错时ax,bx还没入栈啊,而且我把栈顶定在了1fff还是不行,内存数据改变是当执行完mov  ss, ax后才改变的,是因为栈的原因吗?
QQ截图20180502231007.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 23:19:50 | 显示全部楼层
求解啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-3 00:01:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-3 10:47:26 From FishC Mobile | 显示全部楼层
人造人 发表于 2018-5-3 00:01
看图

那我想问下我上面调试时执行完mov ss, ax后,是什么导致内存1000:0017后的数据发生的变化呢,不太明白这个地方,能不能详细解释下( ω )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-3 13:01:37 | 显示全部楼层    本楼为最佳答案   
风不会停息 发表于 2018-5-3 10:47
那我想问下我上面调试时执行完mov ss, ax后,是什么导致内存1000:0017后的数据发生的变化呢,不太明白这 ...

你的栈太小了,debug调试程序时需要栈,因为栈太小,debug用栈时把1000:0017后的数据覆盖了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-3 16:22:56 | 显示全部楼层
风不会停息 发表于 2018-5-2 23:12
可是指令出错时ax,bx还没入栈啊,而且我把栈顶定在了1fff还是不行,内存数据改变是当执行完mov  ss, ax ...

mov ss,ax 执行后不响应任何中断。所以看不到T命令后显示各个寄存器内容并等待输入。下面紧接着执行了mov sp,20h,响应中断。引发中断过程,中断过程中需要向当前栈中,栈顶为ss:sp=1000:0020。首先压入标志寄存器的值-01A4,和执行完mov sp,20h之后下条指令的cs的值-1000,和ip的值-0008。所以被改变了。后面学习中断过程你就懂了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 00:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表