中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 02:04
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 搞搞debug! 查看 1,310 回复 0
楼 主 搞搞debug! 发表于 2003-06-05 00:00 ·  中国 北京 东城区 联通
初级用户
积分 105
发帖 1
注册 2003-06-05 00:00
UID 3756
性别 男
状态 离线
看了论坛的几篇关于DEBUG的帖子,俺也想来搞搞DEBUG,说来话长啊,DEBUG可太老了,但是用好了可是功能强大。
这不前几天闹非典,俺怕被隔离,所以就逃回了家,像俺这样没电脑就不想活的人,在家哪能待得往,所以就想方设法借了台电脑,这台电脑好像比DEBUG的年纪还要大,不但没光驱不说,连软驱都是坏的,连个软件都装不上去,就连个最基本的QBASIC都没有,但用DIR一查,还有一个DEBUG,还好,就用它来写汇编吧,但它只支持基本的汇编,,每次回车之后,汇编就编译成指令了,不好修改,连标号都没有,只有地址,每次写完之后,把编译过的程序的跳转地址记下,再重新编写,太累了,所以俺就想了个办法,就是把程序先用EDIT之类的软件写好,然后用dos命令把它传给debug,再把输出的东西放到一个文件中,再把源程序中的跳转地址给修改过来,再编译就OK了!
光说不练不行,下面来个例子:
c:\>edit x.txt
进入edit编辑x.txt
a
mov ah,9
mov dx,100
int 21h
int 20h
db 'Hello','$'

n x.com
rcx
20
w
q
注意上面的n x.com之前必须有一个回车!懂汇编的人知道,这是一个输出一个字符串的程序,但在设计之前很难算出字符串地址,所以在DX中,我就瞎设了一个100,然后执行下面命令:
c:\>debug out.txt
这样执行完这条命令之后,就会有一个out.txt
-a

0BD4:0100 mov ah,9

0BD4:0102 mov dx,100

0BD4:0105 int 21

0BD4:0107 int 20

0BD4:0109 db 'Hello','$'

0BD4:010F

-n x.com

-rcx

CX 0000
:20

-w

Writing 00020 bytes
-q
我们可以看到字符串的地址是0109,那么DX中也一定是0109,这个程序是F个字节,那么RCX下面的那行就不应该是20,而应该是F了,这样只要两遍就可以生成一个X.com
不知道有没有网友还有比这更好的办法?说出来,让我们一起进步!
论坛跳转: