鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 3

一个汇编程序调试时发现的问题

[复制链接]
发表于 2014-5-14 23:16:37 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ♂我是上帝♂ 于 2014-5-15 14:13 编辑
 
代码 1.asm
data segment
string1 db 'Move the cursor backward. '
string2 db 'Move the cursor backward. '
mess1 db 'Match.',13,10,'$'
mess2 db 'No Match!',13,10,'$'
data ends
prog segment
assume cs:prog, ds:data, es:data
start:
     mov ax,data
     mov ds,ax
     mov es,ax
     lea si,string1
     lea di,string2
     mov cx,26d
     cld
begin:
     cmpsb
     jne  outmess2
     loop begin
     jcxz outmess1
     
   
outmess1:
     lea dx,mess1
     mov ah,09h
     int 21h
     ;mov ah,0ah
     ;int 21h
     jmp close
outmess2:
     lea dx,mess2
     mov ah,09h
     int 21h
     ;mov ah,0ah
     ;int 21h   

     
close: mov ah,4ch
     int 21h
prog ends
end start
--------------------------------------------------------------
现象
当我编译 链接完成这个程序后,直接在dos里运行程序,没有输出字符串"match"。但是当我进入debug后用g命令调试该程序,得到输出,并用q命令退出后,再直接运行该程序后,就可得到输出。
1.png
直接运行
2.png
无输出字符串
3.png
debug调试后再退出,直接运行
4.png
我的问题是:
为什么会这样?进入debug再退出后改变了什么吗?使得程序能够输出。
求诸位大神不吝赐教。



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

使用道具 举报

发表于 2014-5-15 14:04:56 | 显示全部楼层
过来看看!,,,,,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-30 14:59:31 | 显示全部楼层

我来拿奖励的:lol::lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-30 15:17:06 | 显示全部楼层

回帖奖励 +10 鱼币

还没学习到这里,来看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 08:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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