debug常用命令_第1页
debug常用命令_第2页
debug常用命令_第3页
debug常用命令_第4页
debug常用命令_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言程序设计汇编语言程序设计Debug 的使用 补充材料补充材料汇编语言程序设计汇编语言程序设计 DebugDebug是为汇编语言设计的一种是为汇编语言设计的一种80868086实模式实模式的调的调试工具,它通过单步执行、设置断点等方式为汇编语试工具,它通过单步执行、设置断点等方式为汇编语言程序员提供了非常有效的程序调试手段。言程序员提供了非常有效的程序调试手段。 Debug Debug可以直接用来检查和修改内存单元内容、可以直接用来检查和修改内存单元内容、装入、运行程序、检查及修改寄存器的值,也就是说装入、运行程序、检查及修改寄存器的值,也就是说DebugDebug可深入到计算机的内部,

2、可使用户更紧密地与可深入到计算机的内部,可使用户更紧密地与计算机中真正进行的工作相联系。计算机中真正进行的工作相联系。 对于刚刚接触汇编的,能通过对于刚刚接触汇编的,能通过DebugDebug更好的理解更好的理解代码。代码。 一、什么是Debug汇编语言程序设计汇编语言程序设计二、如何 进入Debug方法方法1:在运行对话框中输入在运行对话框中输入“cmd”启动启动DOS命令窗口后命令窗口后输入输入“Debug”回车;回车;方法方法2:在程序在程序/附件附件/命令提示符,启动命令提示符,启动DOS命令窗口后输命令窗口后输入入“Debug”回车。回车。进入进入Debug的提示符是符号的提示符是符

3、号“-”。即出现提示符。即出现提示符“-”就表就表示可以接受示可以接受DEBUG命令了。命令了。 按按Alt+Enter键可在全屏与窗口之间切换。键可在全屏与窗口之间切换。汇编语言程序设计汇编语言程序设计三、 Debug命令格式 DEBUG的每个命令都是一个的每个命令都是一个字母字母,后跟一个或多个参数,参数,后跟一个或多个参数,参数与参数之间,用与参数之间,用空格或逗号空格或逗号隔开,参数与命令符之间用空格隔开,隔开,参数与命令符之间用空格隔开,命令的结束符是回车键命令的结束符是回车键 Enter。下面对下面对DEBUGDEBUG命令作几点说明:命令作几点说明:u字母不分大小写。字母不分大小

4、写。u只使用只使用1616进制数,且不能带后缀进制数,且不能带后缀H H。u以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的。间是必须的。u可以用可以用Ctrl+CCtrl+C终止命令的执行。终止命令的执行。u若输入的命令有语法错误,则提示若输入的命令有语法错误,则提示“Error”,Error”,并用并用“”指出错误指出错误位置。位置。 汇编语言程序设计汇编语言程序设计四、四、DebugDebug常用命令常用命令?显示显示Debug命令列表。命令列表。R显示或改变一个或多个寄显示或改变一个或多个寄存器的内容存器的内

5、容D显示查看内存中的内容。显示查看内存中的内容。E从指定地址开始从指定地址开始,将数据输将数据输入到内存,即改写内存的内容。入到内存,即改写内存的内容。A以汇编指令的格式在内存以汇编指令的格式在内存中写入一条机器指令。中写入一条机器指令。U反汇编字节并显示相应的反汇编字节并显示相应的汇编指令汇编指令T执行一条指令,然后显示执行一条指令,然后显示所有寄存器的内容所有寄存器的内容P执行循环、重复的字符串执行循环、重复的字符串指令、软件中断或子例程。指令、软件中断或子例程。不跟踪内部。不跟踪内部。G运行在内存中的可执行文运行在内存中的可执行文件。件。Q停止停止Debug会话。会话。汇编语言程序设计汇

6、编语言程序设计Debug中标志位的符号表示中标志位的符号表示标志标志10OFOVNVDFDNUPIFEIDISFNGPLZFZRNZAFACNAPFPEPOCFCYNC汇编语言程序设计汇编语言程序设计1、R命令命令格式格式: R : R (1) R(1) R功能功能: :显示当前所有寄存器内容,状态标志及将要执行的下一指显示当前所有寄存器内容,状态标志及将要执行的下一指令的地址、代码及汇编语句形式(反汇编令的地址、代码及汇编语句形式(反汇编CS:IPCS:IP所指的指令),所指的指令),其中对状态标志其中对状态标志FLAGFLAG以每位的形式显示。以每位的形式显示。 (2) R (2) R 功

7、能功能: :显示指定寄存器内容显示指定寄存器内容, ,例如:例如:-R AX-R AX 等待用户等待用户键入新的值,按回车键结束。键入新的值,按回车键结束。当进入当进入DEBUGDEBUG时,寄存器和标志设成以下数值时,寄存器和标志设成以下数值 : DS DS,ESES指向最低可用段处的程序区前缀。指向最低可用段处的程序区前缀。BXBX和和CXCX为文件为文件容量值。其余寄存器皆取零值容量值。其余寄存器皆取零值 。 汇编语言程序设计汇编语言程序设计2、D命令命令 格式格式: D (1) D (2) D (3) D 功能:以两种形式显示指定范围的内存内容。一种形式为十六功能:以两种形式显示指定范

8、围的内存内容。一种形式为十六进制内容,一种形式为以相应字节的内容作为进制内容,一种形式为以相应字节的内容作为ASCII码的字符,码的字符,对不可见字符以对不可见字符以.代替。代替。 如果想知道内存如果想知道内存10000H10000H处的内容,可以用处的内容,可以用d d 段地址:偏移段地址:偏移地址地址 的格式来查看,如输入的格式来查看,如输入 -d 1000:0-d 1000:0 使用使用 d 1000:9d 1000:9查看查看1000:91000:9处的内容。处的内容。 使用使用 d 1000:0 9d 1000:0 9查看查看1000:0-1000:91000:0-1000:9的内容

9、的内容 一进入一进入DebugDebug,可直接使用可直接使用D D命令直接查看,将列出命令直接查看,将列出DebugDebug预设预设的地址处开始的地址处开始128128个字节单元的内容个字节单元的内容汇编语言程序设计汇编语言程序设计3、E命令命令格式格式: E (1) E 功能功能: 不断显示地址,可连续键入修改内容,直至新地址出现后不断显示地址,可连续键入修改内容,直至新地址出现后键入回车键入回车Enter为止。为止。 (2) E 其中其中是以空格分隔的十六进制数,或用是以空格分隔的十六进制数,或用或或”括起来的字符串,或者是二者的组合。括起来的字符串,或者是二者的组合。功能功能:将将逐

10、一写入由逐一写入由开始的一片单元。开始的一片单元。 如将内存如将内存1000:0-1000:91000:0-1000:9单元中的内容分别写为单元中的内容分别写为0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9,9,则键入则键入 -e 1000:0 0 1 2 3 4 5 6 7 8 9 -e 1000:0 0 1 2 3 4 5 6 7 8 9 汇编语言程序设计汇编语言程序设计4、U命令命令 格式:格式:U / (1) U (2) U (3) U 功能:功能:将指定范围内的代码以汇编语句形式显示,同时显示将指定范围内的代码以汇编语句形式显示,同时显示地址及机器代码。这

11、时应记下程序代码段的首地址(地址及机器代码。这时应记下程序代码段的首地址(CS)和数据段地址和数据段地址(DS)。 注意:注意:反汇编时一定确认指令的起始地址后再作,否则将得反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次不到正确结果。地址及范围的缺省值是上次U指令后下一指令后下一地址的值。这样可以实现连续反汇编。地址的值。这样可以实现连续反汇编。汇编语言程序设计汇编语言程序设计 向内容中写入机器码,如向内容中写入机器码,如 b80100 (b80100 (代表代表 movmov ax, 0001), ax, 0001), b90200 ( b90200 (

12、代表代表 movmov cxcx, 002), , 002), 01c8 ( 01c8 (代表代表 add ax, add ax, cxcx) ),那么输入那么输入-e 1000:0 b8 01 00 b9 02 00 01 c8 -e 1000:0 b8 01 00 b9 02 00 01 c8 就将该程序输入内容就将该程序输入内容1000:01000:0处。处。使用使用u u命令命令-u 1000:0-u 1000:0可以将内存单元中的内容翻译成汇编指令可以将内存单元中的内容翻译成汇编指令如果要执行该程序,首先用如果要执行该程序,首先用r r命令将命令将CSCS修改成修改成10001000

13、,IPIP修改成修改成0 0,再使用再使用t t命令单步执行程序。命令单步执行程序。汇编语言程序设计汇编语言程序设计5、A命令命令 格式:格式:A : (1) A : (2) A : (3) A (4) A功能:键入该命令后显示段地址和段内偏移并等待用户从键功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示下一地址段地址和段内偏移所指定的内存区域,直到显示下一地址时用户直接键入回车键返回到提示符时用户直接键入回车键返回到提示符“-”。汇编语言程序设计汇

14、编语言程序设计示例:用示例:用A命令,输入下列程序并运行命令,输入下列程序并运行-a1000:0movax,1movbx,2movcx,3addax,bxaddax,cxaddax,ax直接按直接按Enter键结束输入。键结束输入。用用r命令将命令将cs修改成修改成1000,ip修改成修改成0,再,再使用使用t命令单步执行程序。执行命令单步执行程序。执行T命令时,命令时,CPU执行执行CS:IP指向的指令指向的指令并将并将IP加指令长度指向下一条指令。加指令长度指向下一条指令。汇编语言程序设计汇编语言程序设计6、T命令命令格式:格式:T =T = 功能:功能:执行由指定地址起始的、由执行由指定地址起始的、由 指定的若干条命令。其指定的若干条命令。其中中 的缺省值是当前的缺省值是当前IPIP值,值, 的缺省值是一条。的缺省值是一条。 例如:例如:-T -T 执行当前指令并显示执行当前指令并显示状态状态 -T 10 -T 10 从当前指令始执行从当前指令始执行10H10H条指令条指令汇编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论