debug 查看当前标志寄存器的标志位值
- 格式:doc
- 大小:113.50 KB
- 文档页数:1


debug指令详解debug指令详解一、DEBUG概述DEBUG是在DOS状态下面供程序员使用的程序调试工具。
它可以用来检查内存中任何地址中的内容以及修改特定地址中的内容。
DEBUG还可以用于逐指令执行某个程序,追踪程序的执行过程,比较一条指令执行前后数值变化情况,读写文件与磁盘扇区。
此外,DEBUG还可以用于读写端口中的数值。
在DEBUG状态下,所有数据都作为字节序列,可以用DEBUG把任何类型的文件读入内存中。
DEBUG能够处理的数据为两种: 十六进制数和ASCⅡ码,使用两位数表示十六进制数据(0~9,A~F)。
在DEBUG中涉及内存中的数据时,要指定数据所在的内存单元的地址,地址的输入格式是: [段地址]: [位移]。
如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。
前100H字节保留给程序段前缀使用(称PSP结构,包含程序执行的各种信息),该区域用于建立DOS与程序之间的联系。
在DEBUG中,使用四位十六进制数表示地址(0~9,A~F)。
DEBUG输入数据时有两种方法: 提示方法和非提示方法。
在提示方法下,输入要求输入数据的命令,后跟保存数据的地址。
执行后可以看到该地址中已有的内容及一个冒号提示符。
此时可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到“—”提示符。
在非提示方法下,输入保持数据的内存地址以及要输入的数据。
DEBUG 的启动:进入DOS状态下,键入DEBUG ,按ENTER键,如:C:\>DEBUG ,则屏幕显示:-符号“-”是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。
DEBUG的退出:在DEBUG的提示符后输入Q命令,按ENTER键,则退出DEBUG 返回DOS。
DEBUG的使用:在DEBUG的提示符后输入DEBUG命令,按ENTER键。
二、DEBUG 命令详解★ A命令格式:A[地址]功能:将指令直接汇编成机器码输入到内存中。
汇编语⾔上机实验⼀DEBUG常⽤命令及8086指令使⽤实验⼀DEBUG常⽤命令及8086指令使⽤实验⽬的:通过实验掌握下列知识:1、8086指令: M OV,ADD,SUB,XCHG等2、DEBUG命令: A,D,E,F,H,R,T,U。
3、ASCII码及⽤16进制数表⽰⼆进制码的⽅法。
内容及步骤:⼀、DEBUG 命令使⽤:1、打 DEBUG 进⼊ DEBUG 控制,显⽰提⽰符 '_ '。
2、⽤命令 F100 10F 'A' 将'A'的ASCII码填⼊内存。
3、⽤命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
4、⽤命令F110 11F 41 重复上⼆项实验,观察结果并⽐较。
5、⽤命令 E100 30 31 32 …… 3F将30H-3FH写⼊地址为100开始的内存单元中,再⽤D命令观察结果,看键⼊的16进制数是什么字符的ASCII码?6、⽤H命令检查下列各组16进制数加减结果并和你的⼿算结果⽐较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、⽤R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
8、⽤R命令将AX,BX内容改写为1050H及23A8H。
⼆、8086常⽤指令练习1、传送指令1)⽤A命令在内存100H处键⼊下列内容: MOV AX,1234MOV BX,5678XCHG A X,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG A X,DX2)⽤U命令检查键⼊的程序并记录,特别注意左边的机器码。
3)⽤T命令逐条运⾏这些指令,每运⾏⼀⾏检查并记录有关寄存器及IP的变化情况。
并注意标志位有⽆变化。
2、加减法指令:1)⽤A命令在内存100H处键⼊下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX图略。
Debug 子命令选择Debug 命令以获得详细信息。
Debug:A(汇编)Debug:C(比较)Debug(转储)Debug:E(键入)Debug:F(填充)Debug:G(转向)Debug:H(十六进制)Debug:I(输入)Debug:L(加载)Debug:M(移动)Debug:N(名称)Debug:O(输出)Debug:P(执行)Debug:Q(退出)Debug:r(寄存器)Debug:s(搜索)Debug:T(跟踪)Debug:U(反汇编)Debug:W(写入)Debug:XA(分配扩展内存)Debug:XD(取消分配扩展内存)Debug:XM(映射扩展内存页)Debug:XS(显示扩展内存状态)***********************Debug子命令******************************Debug:A(汇编)直接将8086/8087/8088 记忆码合并到内存。
该命令从汇编语言语句创建可执行的机器码。
所有数值都是十六进制格式,必须按一到四个字符输入这些数值。
在引用的操作代码(操作码)前指定前缀记忆码。
a [address]参数address指定键入汇编语言指令的位置。
对address 使用十六进制值,并键入不以“h”字符结尾的每个值。
如果不指定地址,a 将在它上次停止处开始汇编。
有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的Debug E(键入)。
有关反汇编字节的信息,请单击“相关主题”列表中的Debug U(反汇编)。
范例a 命令支持所有形式的间接注册命令,如下例所示:add bx,34[bp+2].[si-1]pop [bp+di]push [si] )还支持所有操作码同义词,如下例所示:loopz 100loope 100ja 200jnbe 200对于8087 操作码,必须指定wait 或fwait 前缀,如下例所示:fwait fadd st,st(3) ; this line assembles; an fwait prefix说明使用记忆码段的替代记忆码为cs:、ds:、es: 和ss:。