鱼C论坛

 找回密码
 立即注册
查看: 1798|回复: 9

写完代码,拿去debug调试,发现一个问题。

[复制链接]
发表于 2013-9-23 19:50:29 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 Sen哥 于 2013-9-23 19:59 编辑

大家帮我一下。。。。程序代码是这样的:其实就是实验三的题目assume cs:sen
sen segment
mov ax,2000h
mov ss,ax
mov sp,0
pop ax
pop bx
push ax
push bx
pop ax
pop bx

mov ax,4c00h
int 21h

sen ends
end

然后去debug单步执行,执行到mov ss,ax,按T就直接到pop ax,ip的值从0003调到0008,跳过了mov sp,0,为什么debug不显示这一步呢????
捕获.PNG

还有,明明这么多条pop和push命令为什么debug就执行两次呢




最佳答案

查看完整内容

这个是中断机制,因为在cmd里面都是单步执行的任务,你每条指令就是一个任务,你调试的时候,每调试一次就会中断一次,意思是你每次-t后都会中断,我以前也不知道为什么在修改SP的时候不会停,原因就是因为在修改 SS 和 SP的时候不会中断,一步执行2个指令。如果楼主有王爽的书, 你翻到250页12.12会有详细说明。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-23 19:50:30 | 显示全部楼层
这个是中断机制,因为在cmd里面都是单步执行的任务,你每条指令就是一个任务,你调试的时候,每调试一次就会中断一次,意思是你每次-t后都会中断,我以前也不知道为什么在修改SP的时候不会停,原因就是因为在修改 SS 和 SP的时候不会中断,一步执行2个指令。如果楼主有王爽的书, 你翻到250页12.12会有详细说明。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-24 10:56:52 | 显示全部楼层
这是中断机制,单步执行时会把CS:IP入栈,为了设定栈顶地址混乱,设置ss sp不允许分开执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 09:42:05 | 显示全部楼层
学习中,牛啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 10:19:32 | 显示全部楼层
新人,来看学习的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 10:38:41 | 显示全部楼层
学习中啊 啊  啊 啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 20:36:52 | 显示全部楼层
我也是看了上面的讲解才知道的:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-25 20:40:40 | 显示全部楼层
好像没写start吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-26 09:00:27 | 显示全部楼层
学习学习啊:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-27 20:31:45 | 显示全部楼层

懂了 谢谢你啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 22:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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