![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 17:36 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 搞搞debug! |
| 可打印版本 1,421 / 0 |
| 第1楼 知秋一叶 | 发表于 2003-06-05 00:00 |
| 初级用户 发帖 1 积分 105 | |
|
搞搞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 不知道有没有网友还有比这更好的办法?说出来,让我们一起进步! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |