DOS下怎么调试汇编程序啊??

 我来答
匿名用户
2010-12-09
展开全部
是为DOS提供的有力的侦错,跟踪程序运行,检查系统数据的工具程序,它是在字符界面下以单字符命令方式工作。要很好地使用它必须具备一定的汇编程序设计和硬件基本知识的能力,当然,它为汇编语言程序员提供了有效的调试手段,它的功能包括以下几个方面。�
1. 直接输入、更改、跟踪、运行汇镅栽闯绦颍华
2. 观察操作系统的内容;�
3. 查看ROM BIOS的内容;�
4. 观察更改RAM内部的设置值;�
5. 以扇区或文件的方式读写软盘数据。�
在DEBUG中地址用段地址与段内地址来表示,而段地址可以明确地指出来,也可以用一个段指示器(段寄存器)来代表,用段寄存器表示时,其段地址就是此寄存器的内含值:�
如:用段地址和段内地址表示FOFF:0100�
用段寄存器和段内地址表示CSF:0100←CS指向F000�
下面列出了常用命令用法。
-A 地址 从指定地址开始编写小汇编程序,按两个回车键结束编辑
-U 地址 从指定地址开始反汇编32字节的机器指令,缺省地址则从上一U命令继续
-D 始址 终址 以16进制/Asc字符对照方式显示指定内存范围的数据,每行显示10H个字节
-E 地址 值表 用给出的值表(空格分隔)替换指定地址开始的内存单元,例:-E 100 'v' 1F 'hello'
-N 文件名 为后续的L/W命令约定所操作的文件名
-L 地址 将N命令所指定文件的内容读入到指定内存位置。另,逻辑卷扇区直接读:-L 地址 逻卷号 起始逻扇号 扇数
-W 地址 将BX-CX个字节的内存数据写入N命令指定的文件中。另,逻辑卷扇区直接写:-W 地址 逻卷号 起始逻扇号 扇数
-R 寄存器名 显示并允许修改指定寄存器的值
-G=始址 终址 执行指定内存中的机器指令程序
-T=地址 单步执行机器指令,缺省地址则从上一T命令继续。另,继续跟踪m条指令:-T m
读取c:卷的引导扇区,并保存到Boot.1文件中,并简单分析引导程序的前面几条指令:
-L 1000 2 0 1
-N boot.1
-R bx ;输入0000
-R cx ;输入0200
-W 1000
-U 1000
读取第一个硬盘上的主引导扇区,并保存到MB.1文件中,在屏幕上显示硬盘分区表数据:
-A 100
yyyy:0100 mov dx,0080
yyyy:01xx mov cx,0001
yyyy:01xx mov ax,yyyy
yyyy:01xx mov es,ax
yyyy:01xx mov bx,1000
yyyy:01xx mov ax,0201
yyyy:01xx int 13
yyyy:01zz nop
-G=yyyy:0100 01zz
-N mb.1
-R bx ;输入0000
-R cx ;输入0200
-W 1000
-D 11be 11ff
Debugger
"Debugger"这个词按它的英文字面意思来讲是这样一种“装置”(-er),这种装置可以“消除”(De-)“系统中的缺陷”(bug)。然而事实上,迄今为止我们经常使用到的"Debugger"只是用来帮助我们进行Debug的工具,"Debugger"本身不能自动完成"Debug"。我们可以回想一下我们是如何进行Debug的,在进行Debug的过程中,我们通过Debugger来完成以下工作:
(1)监视“Debug对象”的状态;
(2)控制“Debug对象”的运行;
这些工作可以为“发现Debug对象中存在的问题”以及“对解决问题方案的检验”提供有用的信息。
监控工作有时只需要由软件就可以完成,有时不仅需要软件支持,还需要硬件的支持。
Debugger除了被用来Debug,还被用来帮助我们理解“Debug的对象”内部结构,因为我们用到的Debugger能够完成对“Debug对象”的监控工作,在监控的过程中可以获取“Debug对象”动态特征的信息,这对我们理解其结构是非常有用的。 Debug-如何打开debug开关 debug是设备调试,排错中非常重要也非常有效的手段。需要对网络协议和Quidway产品相对熟悉的情况下使用。
过程:首先输入
[Router]info-centerenable
使用console配置口时,输入:
[Router]info-centerconsole
[Router]info-centerconsoledebug
使用远程telnet时,输入:
[Router]info-centermonitor
[Router]info-centermonitordebug
此处以调试链路层协议ppp数据包为例
[Router]debuggingppppacket
『注意』
1.特权模式下debug;可以从displaydebug看出现在有哪些调试开关是打开的
2.调试开关打开,对路由器性能会有相应程度的影响,所以用后请及时关闭调试信息:
[Router]undodebugall,或者ctrl+d亦可
973544732
2010-12-12 · TA获得超过241个赞
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:104万
展开全部
调试程序当然是调试已经编译好的程序了,难道会去调试源代码?debug不只是个反汇编工具,虽然它的调试方式是反汇编,但它确实是dos下的一个著名的调试程序,“debug”的英文本意就是“排除故障”,有关debug的用法百度百科有,网址

http://baike.baidu.com/view/45108.htm#2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
axpokl
推荐于2016-10-28 · TA获得超过228个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:273万
展开全部
楼上注意,debug只是一个反编译工具。
首先你要有一个汇编程序的编译器才行。
DOS是无法编译程序的。
调用编译好的程序只需要运行改程序即可。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baitang3671b
2010-12-08 · TA获得超过5040个赞
知道大有可为答主
回答量:4421
采纳率:31%
帮助的人:1130万
展开全部
debug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式