中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 搞搞debug! 上一主题 | 下一主题
知秋一叶
初级用户




积分 105
发帖 1
注册 2003-6-5
状态 离线
『楼 主』:  搞搞debug!

看了论坛的几篇关于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
不知道有没有网友还有比这更好的办法?说出来,让我们一起进步!

2003-6-5 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: