鱼C论坛

 找回密码
 立即注册
查看: 2895|回复: 6

关于debug中g和p命令的问题,望知者解答,谢谢!

[复制链接]
发表于 2012-5-16 20:24:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lukexc 于 2012-5-16 21:11 编辑

问题:当我在debug中执行g或者p命令后,相关寄存器并不会记录计算的结果,而是清零了!

                               
登录/注册后可看大图

                               
登录/注册后可看大图

程序源码:
assume cs:codesg

codesg segment

start:mov ax, 236
        mov cx, 123
      s:add ax, ax
        loop s
          
       mov ax, 4c00H
       int 21H
          
codesg ends

end start


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-16 21:11:15 | 显示全部楼层
我单步调试了一下,发现中途ax数据超过ffffh,然后就跳0了,你汇编学到哪里了?这个问题你目前可能先不需要知道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-16 21:11:56 | 显示全部楼层
涉及到标志位什么的,,我汇编学的也不是很多,才到第十章
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-5-16 21:17:08 | 显示全部楼层
张国祥 发表于 2012-5-16 21:11
涉及到标志位什么的,,我汇编学的也不是很多,才到第十章

喔,谢谢,我试了下2^12没溢出了!
我在学第5章!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-16 22:45:34 | 显示全部楼层
p命令必须在有loop指令的时候用于跳转循环 一般一开始mov语句 最好用t命令 执行到loop指令的时候再用p命令跳出循环
g命令直接执行完程序
但最好先单步执行因为 程序开头一般都是段地址的赋值 所以 执行完开头一部分这样你用r命令的时候就可以看见ds、ss、cs的值  如果一开始就用g 你是看不到这些值的

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
Dardy + 1 + 1 + 1 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-5-16 23:36:56 | 显示全部楼层
leebox 发表于 2012-5-16 22:45
p命令必须在有loop指令的时候用于跳转循环 一般一开始mov语句 最好用t命令 执行到loop指令的时候再用p命令跳 ...

谢谢你的帮助!:P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-13 13:08:44 | 显示全部楼层
在第十四次循环的时候,ax由800H变为10000H 第五位溢出。故而ax = 0000H  接下来怎么加都是0了。这是算法的问题 ,问题本身不在g和p命令。
“g 地址”命令的意思是 在地址处设断点,并执行到断点
p命令的意思是 执行到下一指令上停止 下一条指令指的是物理上的下一条

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
Dardy + 1 + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 09:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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