欢迎来到天天文库
浏览记录
ID:49756380
大小:285.01 KB
页数:16页
时间:2020-03-01
《debug-.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用debug命令掌握寻址方式DEBUG为汇编语言程序员提供了非常有效的调试手段。进入命令提示符窗口:开始/程序/附件/命令提示符或者开始/运行/cmd命令提示符窗口下输入debug屏幕显示-:表示进入debug调试状态DEBUG的主要命令1、显示存储单元的命令D格式为:D[address]或_D[range]Address格式:段地址:偏移地址注意:段地址可以是段名或者数字D命令默认显示DS段的内容Range格式:起始地址结束地址例如,-d100120显示0100至0120的单元内容屏幕最左边显示主存逻辑地址中间用十六进制表示每个字节右边用ASCII字符表示每个字节,·表示不可显示的字符。
2、2、修改存储单元内容:E命令第一种格式:可以用给定的列表中的内容表来替代指定范围的存储单元内容。格式为:-Eaddress[list]例如,-EDS:100F3‘XYZ’8D该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。第二种格式:逐个单元相继修改命令格式为:-Eaddress例如,-EDS:100则可能显示为:18E4:010089.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:18E4:010089.781B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。3.填写命令F(
3、FILL):格式为:-Frangelist例如:-F4BA:01005F3'XYZ'8D使04BA:0100~0104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。4.检查和修改寄存器内容的命令R(register)格式1:-R显示CPU内所有寄存器内容和标志位状态格式2:-Rregistername显示和修改某个寄存器内容例如,键入-RAX系统将响应如下:AXF1F4:即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:AXF
4、1F4:059F则把AX寄存器的内容修改为059F。格式3:显示和修改标志位状态如:-RF系统将响应,OVDNEINGZRACPECY-此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:OVDNEINGZRACPECY-PONZDINV即可,可见键入的顺序可以是任意的。5.运行命令G其格式为:-G[=address1][address2[address3…]]其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。6.跟踪命令T(Trace。格式
5、1:逐条指令跟踪-T[=address]从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。格式2:多条指令跟踪-T[=address][value]从指定地址起执行n条指令后停下来,n由value指定。7.汇编命令A(Assemble)格式为:-A[address]该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。8.反汇编命令U(Unassemble)格式1:-U[address]从指定地址
6、开始,反汇编32个字节。如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。例如:-u100结果:18E4:0100C70604023801 MOV WORDPTR[0204],0138 18E4:0106C70606020002 MOV WORDPTR[0206],0200 18E4:010CC70606020202 MOV WORDPTR[0208],0202 18E4:0112BBO4O2 MOV BX,0204 18E4:0115E80200 CALL011A
7、 18E4:0118CD20 INT 20 18E4:011A50 PUSHAX 18E4:011B51 PUSHCX 18E4:011C56 PUSHSI 18E4:011D57 PUSHDI 18E4:011E8B37MOVSI,[BX]格式2:-U
此文档下载收益归作者所有
点击更多查看相关文章~~