汇编语言debug调试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
命令( 17. “P”命令(proceed) 命令 功能: 功能:在下条指令前停止 格式: 格式: -P [=address][value] 说明:执行子程序,循环命令,中断或重复字符串命令 说明:执行子程序,循环命令, 发出一条P命令返回到下一条命令处. 命令和T 后,发出一条P命令返回到下一条命令处.P命令和T命 令语法相同 18.“ 18.“O” 输出命令 格式: 格式: -O 端口地址 数据
3
1.“ 1.“ D ” 命令 功能:显示内存单元的内容. 功能:显示内存单元的内容. 注意:十六进制是DEBUG唯一认识的数字系统, DEBUG唯一认识的数字系统 注意:十六进制是DEBUG唯一认识的数字系统,键入和输出时十 六进制数不用后加“ ,十进制数后要加“ 六进制数不用后加“H”,十进制数后要加“D” 格式: 格式: [存储单元地址 存储单元地址] -D [存储单元地址] [存储单元地址范围 存储单元地址范围] -D [存储单元地址范围] 例如: 例如: -D 100 -D 100 120 显示的信息,左边用十六进制表示每个字节,后边用ASCII 显示的信息,左边用十六进制表示每个字节,后边用ASCII 字符表示每个字节.表示不可显示的字符. 命令自动显示DS DS段 字符表示每个字节.表示不可显示的字符.D命令自动显示DS段 的内容 上机实践> <上机实践>
4
2.“ 2.“ E ” 命令 功能:修改存储单元的内容 功能: 格式: 格式:
输入数据后按空格键 可连续修改数据
-E 存储单元地址 数据 数据 数据 ... 此格式使键入的数据替代了指定范围的存储单元内容 -E 存储单元地址 此格式采用逐个存储单元相继修改的方法 <上机实践> 上机实践>
5
3.“ 3.“ F ” 命令 功能: 功能:用一个指定的十六进制数填入一部分存储单元 格式: 格式: -F 开始地址 终止地址 常量 命令与“ 命令都可修改存储单元的内容 命令都可修改存储单元的内容, “F”命令与“E”命令都可修改存储单元的内容,但“F” 命令与 命令只能键入一串相同的数据。 命令只能键入一串相同的数据。 例如: 例如: -F 100 120 4F <上机实践> 上机实践>
9
7.“ 7.“ G ” 命令 功能: 功能: 运行命令 格式: 格式: [运行的起始地址 [断点地址 [断点地址 运行的起始地址] 断点地址] 断点地址] -G [运行的起始地址] [断点地址] [断点地址]… 执行:若没有指定任何地址,则从当前的CS:IP地址处 执行:若没有指定任何地址,则从当前的CS:IP地址处 CS:IP 开始运行程序;若指定地址,则从起始地址开始运行, 开始运行程序;若指定地址,则从起始地址开始运行, 在断点地址处停止,并显示所有寄存器及标志位内容, 在断点地址处停止,并显示所有寄存器及标志位内容, 和下一条要执行的指令. 和下一条要执行的指令. <上机实践> 上机实践>
15
例如: 例如: -R BX BX 0100 :0000 -R CX CX 0000 :2400 -N MYPROG.COM -W Writing 2400 bytes
16
13. “ Q ” 命令 功能:结束DEBUG DEBUG程序 功能:结束DEBUG程序 格式: 格式: -Q 说明:使用Q命令退出DEBUG时,内存中正在运行的文 DEBUG时 说明:使用Q命令退出DEBUG 件没有存盘,必须利用WRITE WRITE命令才能保存文件 件没有存盘,必须利用WRITE命令才能保存文件
19
16. “C ”命令 C 命令 功能: 功能:比较两个内存块的内容 格式: 格式:-C range address 说明:第一个参数指出“源地址范围” 说明:第一个参数指出“源地址范围”,第二个参数 指出“目标地址” 如果两个内存块内容不同, 指出“目标地址”,如果两个内存块内容不同,则显 示出两者的地址和内容.其显示方式是: 示出两者的地址和内容.其显示方式是: addr1 byte1 byte2 addr2 其中addr1 byte1是range中失配单元的地址和内容 中失配单元的地址和内容, 其中addr1 byte1是range中失配单元的地址和内容, byte2指出address中失配的内容和地址 指出address 而byte2指出address中失配的内容和地址
12
10.“ 命令 10.“L”命令 功能: 功能:把程序装入存储器 格式: 格式: -L [address[drive sector sector]] 说明: 说明: address指定内存的起始装入地址 缺省时为CS:100); 指定内存的起始装入地址( address指定内存的起始装入地址(缺省时为CS:100); drive指定驱动器:0表示 指定驱动器:0表示A ,1表示 表示B drive指定驱动器:0表示A盘,1表示B盘; sector:前者表示 相对扇区号” 前者表示“ sector sector:前者表示“相对扇区号”,后者表示 需要的“扇区数” 一条L 需要的“扇区数”。一条L命令所能装入的最大扇区 数是十六进制80 数是十六进制80 例: -L 4BA:100 1 0F 6D
7
5.“ 5.“ A ” 命令 功能:汇编命令 功能: 格式: 格式: [开始存放指令的地址 开始存放指令的地址] -A [开始存放指令的地址] 可以键入汇编语言语句, 可以键入汇编语言语句,并能把它汇编成机器代 相继放入从指定地址开始的存储器中. 码,相继放入从指定地址开始的存储器中. <上机实践> 上机实践>
8Байду номын сангаас
6.“ 6.“ T ” 命令 功能: 功能:跟踪命令 格式: 格式: [=指令地址 指令地址] (1) -T [=指令地址] 功能:从指定的地址起执行一条指令后停下来, 功能:从指定的地址起执行一条指令后停下来,显示 所有寄存器内容及标志位的值; 所有寄存器内容及标志位的值;如未指定地址则从 当前的CS:IP CS:IP开始执行 当前的CS:IP开始执行 指令地址][要执行的指令条数N] (2) –T [=指令地址][要执行的指令条数N] T [=指令地址][要执行的指令条数 功能:从指定地址开始执行N条指令后停下来, 功能:从指定地址开始执行N条指令后停下来,显示 各寄存器的值 上机实践> <上机实践>
11
9.“ 9.“ N ” 命令 功能: 功能:给输入的汇编程序命名 格式: 格式: -N [D:][PATH] FILENAME[.EXE] 说明:如果启动DEBUG程序没有指定文件说明,那么在 说明:如果启动DEBUG程序没有指定文件说明, DEBUG程序没有指定文件说明 LOAD命令装入文件之前必须先使用 命令装入文件之前必须先使用N 用LOAD命令装入文件之前必须先使用N命令
18
15. “I”命令 命令 功能:从指定端口输入一个字节, 功能:从指定端口输入一个字节,并显示之 格式: 格式: -I portaddress 例: -I 2F8 6B 表示从端口02F8输入的字节被显示出来(6B) 02F8输入的字节被显示出来(6 表示从端口02F8输入的字节被显示出来(6B)
2
DEBUG的运行 二.DEBUG的运行 DEBUG是DOS操作系统提供的程序之一, DOS提 DEBUG是DOS操作系统提供的程序之一,在DOS提 操作系统提供的程序之一 示符下键入程序名“DEBUG”, 示符下键入程序名“DEBUG ,屏幕上出现的短划线是 DEBUG”的提示符 的提示符, “DEBUG 的提示符,这符号通知用户机器已作好准备 来接受下一个命令。 来接受下一个命令。 DEBUG的命令如下: DEBUG的命令如下: 的命令如下
21
PSW中的标志位的符号表示 PSW中的标志位的符号表示
标志名 OF DF IF SP ZF AF PF CF 标志为1 标志为1 OV DN EI NG ZR AC PE CY 标志为0 标志为0 NV UP DI PL NZ NA PO NC
10
8.“ 8.“ U ” 命令 功能: 功能:反汇编命令 格式: 格式: 指令地址] (1) –U [指令地址] U [指令地址 执行:从指定地址开始,反汇编32个字节;若未指定地 执行:从指定地址开始,反汇编32个字节; 32个字节 则从上一个U 址,则从上一个U命令的最后一条指令的下一个单元开 始显示32 32个字节 始显示32个字节 开始地址] 终止地址] (2) –U [开始地址] [终止地址] U [开始地址 [终止地址 执行:从指定的开始地址开始反汇编, 执行:从指定的开始地址开始反汇编,到终止地址结束 <上机实践> 上机实践>
DEBUG调试程序 DEBUG调试程序
1
DEBUG调试程序 DEBUG调试程序 DEBUG与汇编程序 一.DEBUG与汇编程序 要在IBM PC机上运行简短的汇编语言程序有两 要在IBM PC机上运行简短的汇编语言程序有两 种方法: 种方法: 1.用汇编程序ASM或与之类似但更先进的MASM,人们 1.用汇编程序ASM或与之类似但更先进的MASM,人们 用汇编程序ASM或与之类似但更先进的MASM, 通常用这两个汇编程序中某一个来对汇编语言程序 进行汇编(转换为机器语言程序). 进行汇编(转换为机器语言程序). 2.使用另一个不同的程序,称之为DEBUG.DEBUG不是 2.使用另一个不同的程序,称之为DEBUG.DEBUG不是 使用另一个不同的程序 DEBUG.DEBUG 真正的汇编程序它的主要用途是用于“调试” 真正的汇编程序它的主要用途是用于“调试”(即 修改程序中的错误)汇编语言程序.但也可用DEBUG 修改程序中的错误)汇编语言程序.但也可用DEBUG 来汇编简单的汇编语言程序. 来汇编简单的汇编语言程序.
13
L命令常与N命令联合使用 命令常与N -N myprog -L 从缺省磁盘把名为myprog的文件取出并存入 从缺省磁盘把名为myprog的文件取出并存入 myprog CS:100起始的内存中 CS:100起始的内存中
14
11.“ ”命令 11.“ W ”命令 目的: 目的:把调试的文件写入磁盘 格式: 格式: -W [address[drive sector sector]] 说明:参数address指出起始内存单元;drive指定磁 address指出起始内存单元 说明:参数address指出起始内存单元;drive指定磁 盘驱动器; sector前者指定相对扇区 前者指定相对扇区, 盘驱动器; sector sector前者指定相对扇区,后者 指定扇区数, 指定扇区数,两者都以十六进制形式表示 例如: 例如: -W 1FD 1 100 A 把地址CS:01FD开始的数据写到B驱动器软盘上, CS:01FD开始的数据写到 把地址CS:01FD开始的数据写到B驱动器软盘上, 自相对扇区100 开始连写0AH个扇区使用 100H 个扇区使用W 自相对扇区100H开始连写0AH个扇区使用W命令写一 个文件时,要先使用N命令给予文件名,再用R 个文件时,要先使用N命令给予文件名,再用R命令把 文件的长度选到寄存器BX CX中 BX和 文件的长度选到寄存器BX和CX中
17
14.“ 命令 14.“H”命令 功能:计算两个16 16进制数的和与差 功能:计算两个16进制数的和与差 格式: 格式: -H value value 例: -H 0F 8 17 07 表示十六进制数000 000F 0008之和为0017,差为 之和为0017,差为0007 表示十六进制数000F及0008之和为0017,差为0007
6
4.“ 4.“ R ” 命令 功能: 功能:检查和修改寄存器的内容 格式: 格式: (1) -R 执行:显示CPU内所有寄存器内容和标志位状态 CPU内所有寄存器内容和标志位状态 执行:显示CPU (2) -R 寄存器名字 执行:显示和修改某个寄存器的内容 执行: (3) -RF 执行: 执行:显示和修改标志位状态 <上机实践> 上机实践>
相关文档
最新文档