预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共31页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

什么是DEBUG? DEBUG是DOS提供的专门用于汇编语言软件,它给出了一些命令,可直接检查、修改寄存器和内存的值,可以调试、跟踪和执行程序段,使我们进一步熟悉指令,了解CPU的内部环境。 DEBUG程序的启动: 在DOS的提示符下直接键入命令 C:\>DEBUG↙ 进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。 声明:在DEBUG状态下输入的数字均为十六进制数,如要输入其他进制数,在输入的数字后加以说明。如十进制数:13D。 在WINDOWS环境下,用鼠标点击开始→所有程序 →附件→提示符命令 或:开始→运行→打开栏→输入:CMD→确定 出现: C:\DocumentandSetting\Administrator>_ >CDC:\↙ C:\>debug↙ 进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。 在WINDOWS环境下Dos窗口大小的切换 用Alt+↙ 1、R命令(Register) 功能:查看和修改寄存器的值。 查看格式:R↙ 在R命令后面直接打入回车,显示当前CPU内部所有寄存器的值、标志位状态及将要执行的下一条指令。 若要修改某个寄存器的值,直接在R后面输入该寄存器的名,然后回车,这时会显示该寄存器的当前值,新值直接输入即可。 修改格式:-R寄存器名↙ -RAX↙ AX0000(0000当前值) :1234↙(1234新值) AX=1020HBX=5060H CX=A0B0HDX=E0F0H SP=FFFFHBP=0200H SI=3040HDI=7080H DS=2000HES=0300H SS=0400HCS=0100H 2、D命令(Dump) 功能:显示存储器单元的值。 格式:D段寄存器名:起始地址 在使用D命令之前,我们首先要明白,内存已经被我们划分为4个段,即:代码段CS、数据段DS、堆栈段SS、附加段ES。 做题时要明确显示或修改的是哪个段的内容。 查看数据段00H单元开始的后面128个字节内存单元的值。(16字节*8行=128字节) -DDS:00↙ 1、查看代码段00单元以后的128个内存单元的值 -DCS:00↙ 2、查看堆栈段100单元以后的10个内存单元的值 -DSS:100109↙ 显示结果由三部分组成: 1、左边是逻辑地址即:段地址+偏移地址; 2、中间是内存单元存放的数据(16进制数); 3、右边是内存单元的ASCII码的对应值。 如: 2000:0000313241426162……12ABab ↑↑↑ 逻辑地址十六进制数字对应ASCII码 即:1的ASCII码是31H a的ASCII码是61H A的ASCII码是41H 3、E命令(Enter) 功能:修改存储单元的值。 格式:E段寄存器名:起始地址 如:要修改数据段00H-05H这6个单元的值。 -EDS:00↙ 这时会显示数据段00单元的当前值,若要修改直接输入新值,要继续修改下个单元的值,按空格键,继续输入新值,结束修改按回车键。 修改数据段:00H-05H单元的值为 313241056162 查看被修改后数据段6个内存单元的值 -DDS:00↙ 2000:0000313241056162……12A.ab 注:内存单元值与ASCII码无对应关系的用点“.”来表示。“.”表示不可显示的ASCII码。 双字节数在内存中的存放 先存放低位再存放高位。 例: (2000H:0100H)=4567H 即数据段:100H=67H 101H=45H 操作步骤: –EDS:100↙ 2000:01006745 完成实验内容第二部分内容。 修改不同段内存单元的值。 数据段(DS): (2000H:0100H)=4567H (2000H:5060H)=DEF3H (2000H:C110H)=ACD6H (2000H:80D0H)=6789H 附加段(ES) (0300H:5060H)=1234H 堆栈段(SS) (0400H:0200H)=4321H 4、A命令(Assemble) 功能:将汇编语句转换成机器码存放到代码段。 格式:A段寄存器名:起始地址 注:转换的机器码一般都存放在代码段,在使用A命令时段寄存器名省略,隐含的是代码段。输入的数字均为十六进制数,如要输入其他进制数,在输入的数字后加以说明。 例:-A100↙ 0100:0100MOVAX,1020↙ 0100:0103MOVBX,3040↙ 0100:0106ADDAX,BX↙ 0100:0108MOVCX,AX↙ 0100:010