debug的使用方法

上传人:第*** 文档编号:49189910 上传时间:2018-07-25 格式:PPT 页数:19 大小:63.50KB
返回 下载 相关 举报
debug的使用方法_第1页
第1页 / 共19页
debug的使用方法_第2页
第2页 / 共19页
debug的使用方法_第3页
第3页 / 共19页
debug的使用方法_第4页
第4页 / 共19页
debug的使用方法_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《debug的使用方法》由会员分享,可在线阅读,更多相关《debug的使用方法(19页珍藏版)》请在金锄头文库上搜索。

1、Debug 的使用方法调试程序DEBUG的特点: 在受控环境中测试程序; 装入,显示或修改任何文件; 执行DOS程序; 完成磁盘实际读/写操作; 建立或汇编汇编语言程序。 DEBUG的命令格式:drive:path DEBUG d:pfilename.extparam.其中: drive: 是指定DEBUG文件的磁盘驱动器标识符,DEBUG是外部DOS命 令,所以必须把它从磁盘读入内存。若未指定,DOS将使用当前默认磁盘驱动器。 path: 是DOS查找DEBUG文件的一个子目录串表示的路径。若未指定, DOS将使用当前工作目录。 d: 是DEBUG将要调试的文件所在的磁盘驱动器。 p: 是查

2、找DEBUG将要调试的文件所需的子目录路径,若未指定,DOS使用当前目录。 filename.ext 是DEBUG将要调试的文件名。 param 是将被调试的程序(或文件)的命令行参数。DEBUG所完成的初始化动作,假定文件名没有,启动DEBUG:段寄存器CS、DS、ES和SS置为DEBUG程序后的第一个段。 指令指针寄存器IP置为100H(程序段前缀PSP后的第一个语句)。 堆栈指针SP置为段末或COMMAND.COM暂驻部分的结束地址(其中较小的那个地址)。 其余通用寄存器均置为0,标志寄存器置为下述状态。 NV UP EI PL NE NA PO NC 如果DEBUG命令行含有文件名,启

3、动DEBUG:段寄存器DS和ES指向PSP。寄存器BX和CX含有程序长度。DEBUG使用单字符命令: 命令格式命令格式汇编A 地址命名N 设备:路径文件 名.扩展名比较C 范围输出O 口地址转出D 范围或地址继续执 行P =地址值键入E 地址表退出Q填入F 范围表寄存器R 寄存器执行G =地址地址地址.搜索S 范围表十六进制H 值 值跟踪T =地址或范围输入I 口地址反汇编U 地址或范围装入L 地址设备扇区,扇区 写W 地址设备扇区,扇 区移动M 范围 地址 显示存储单元的命令D(DEBUG)格式为: - Daddress 或 - Drange例如,按指定范围显示存储单元内容的方法为: -D

4、100 120 ( 或 D 100 L21 ) 067C:0100 C7 D7 0D 0A 32 33 33 34 - D5 C5 B4 C6 30 10 42 0C 23340.B. 067C:0110 03 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F .ABCDEFGHIJKLMNO 067C:0120 8B 其中0100至0120是DEBUG显示的单元内容。 左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,“.”表示不可显示的字符。如果没有指定段地址, D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个

5、字节的内容。如果完全没有指定地址,则显示上一个D命令的最后一个单元的内容。 修改存储单元内容的命令1. 输入命令E(Enter)有两种格式:1) 第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:-E address list例如,-E DS:100 F3XYZ8D 其中F3,X,Y,Z和8D各占一个字节,该命令可以用这五个字节来替代 存储单元DS:0100到0104的原先的内容。2) 第二种格式则是采用逐个单元相继修改的方法。命令格式为:-E address例如,-E CS:100则可能显示为:18E4:0100 89. - 如果需要把该单元的内容修改为78,则可以直接键

6、入78,再按空格键可接着显示下一个 单元的内容,这样可以不断修改相继单元的内容,直到Enter键结束该命令为止。修改存储单元内容的命令2. 填写命令F(Fill)格式:-F range list例如,-F 4BA:0100 L5 F3XYZ8D使04BA:0100-0104单元包含指定的五个字节的内容。 如果list中的字节数超过指定的范围,则忽略超过的项; 如果list的字节数小于指定范围,则重复使用list填入,直到填满指定的所有单元为止。检查和修改寄存器内容的命令R(Register)1. 显示CPU内所有寄存器内容和标志位状态格式:-R例如,- rAX=0000 BX=0000 CX=

7、010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801 MOV WORD PTR0204,0138 DS:0204=0000其中标志位状态的含义可见下表:标 志 名标志为1标志为0 OF DF IF SF ZF AF PF CF溢出(是/否) 方向(减量/增量) 中断(允许/关闭) 符号(负/正) 零(是/否) 辅助进位(是/否) 奇偶(偶/奇) 进位(是/否OV DN EI NG ZR AC

8、 PE CYNV UP DI PL NZ NA PO NC检查和修改寄存器内容的命令R(Register)2. 显示和修改某个寄存器内容格式:-R register_name例如,- r ax系统将响应如下:AX F1F4:即AX寄存器的当前内容为F1F4,如不修改则按Enter键,否则,键入欲修改的内容如:- r bxBX 0369 :059F 则把BX寄存器的当前内容修改为059F。运行命令G(Go)格式:-G =address1address2address3 . 其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。 后面的地址均为断点地址,当指令执行到断点时,就停止

9、执行 并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。跟踪命令T(Trace)1. 逐条指令跟踪格式:-T=address 从指定地址起执行一条指令后停下来, 显示所有寄存器内空及标志位的值。 如未指定则从当前的CS:IP开始执行。2. 多条指令跟踪格式:-T=addressvalue 从指定地址起执行n条指令后停下来, n由value指定。汇编命令A(Assemble)格式:-A address 该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。 必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如

10、100D。 反汇编命令U(Unassemble)1. 从指定地址开始,反汇编32个字节格式:-Uaddress例如,-u 10018E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70608020202 MOV WORD PTR0208,020218E4:0112 BB0402 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4

11、:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,BX 如果地址被省略则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。反汇编命令U(Unassemble)2. 对指定范围内的存储单元进行反汇编格式:-Urange例如,-u 100 10C18E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70608020202 MOV WO

12、RD PTR0208,0202或-u 100 11218E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70608020202 MOV WORD PTR0208,0202这两种格式是等效的。命名命令N(Name)格式:-N filespecs filespecs 命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在 其后用L或W命令把文件装入或存盘。 filespecs的格式可以是:d:path filename.ext

13、 例如: -N myprog -L 可把文件myprog装入存储器。装入命令L(Load)1. 把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中格式:-Laddress drive sector sector2. 装入指定文件格式:-Laddress 此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。 如未指定地址,则装入CS:0100开始的存储区中。 写命令W(Write)1. 把数据写入磁盘的指定扇区格式:-W address drive sector sector2. 把数据写入指定的文件中格式:-W address 此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的 文件中。 如未指定地址则数据从CS:0100开始。 要写入文件的字节数应先放入BX和CX中。退出DEBUG命令Q(Quit)格式:-Q 退出DEBUG,返回DOS。 本命令无存盘功能,如需存盘应先使用W命令。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号