DEBUG调试程序 (2)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的

1、掌握DEBUG的常用命令,学会使用DEBUG。

2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入和弹出。

3、掌握各种寻址方法以及简单指令的执行过程。

二、实验设备及环境

1.安装Windows 7操作系统的计算机

三、实验内容及步骤(截图并对图示进行必要的文字说明)

1、练习debug的命令

1、汇编命令A(Assemble Command)将汇编语言程序直接会变进入内存

2、反汇编命令U(Unassemble Command)将制定地址范围内的代码以汇编语言

形式显示,同时显示该代码位于内存的地址和机器码

3.显示内存单元内容命令D(Dump Command)显示制定内存范围的内容

显示偏移地址为100-115的内容:

4. 修改存储单元内容命令E(Enter Command)

a. 用命令所给定的内容表去代替指定地址范围的内存单元内容。

b. 一个单元一个单元地连续修改单元内容。

例:往200H为起始地址的单元存放一串16进制数。

查看这些数据是否替换了原来单元的内容

5、检查和修改寄存器内容命令R(Register Command)

格式:a. R b. R [寄存器名]

功能:a. 显示CPU所有寄存器的内容和全部标志位状态。

b. 显示和修改一个指定寄存器内容和标志位的状态。

例如:显示所有寄存器的内容和全部标志位状态

例如:修改寄存器BX的内容为3000

例如:修改标志位零ZF为ZR,方向标志DF为DN

6、单步执行命令T(Trace Command)

格式:a. T[=地址] b. T[=地址] [条数]

例:用T命令格式b执行以上程序:

若单步执行3条指令,可采用b格式。

7、运行命令G(Go Command)执行用户正在调试的程序

8、退出命令Q (Quit Command)

二.在DEBUG状态下,输入以下程序:

1.a命令输入程序

2.用检查和修改寄存器内容命令R设定BX=0300,SI=0002

3. 用修改存储单元命令E将数据0A,0B,0C,0D,0E,0F顺序地存入到偏移地址为300H开始的内存单元中

4.用单步命令执行程序,并记录下每条指令执行结束后AX的内容。

偏移地址100H

偏移地址101H

偏移地址102H

偏移地址103H

偏移地址104H

偏移地址105H

偏移地址106H

5.分析每条指令源操作数的寻址方式。

MOV AX,BX 寄存器寻址

MOV AX,0304 立即数寻址

MOV AX,[0304] 直接寻址

MOV AX,[BX]基址寻址

MOV AX,[BX+0001]相对基址寻址

MOV AX,[BX+SI]基址变址寻址

MOV AX,[BX+SI+0001]相对基址变址寻址

三.输入下列指令:指令哪些是正确的写法,对于正确的指令,每条指令的机器码有几个

字节;对于错误的指令,其错误的原因是什么?

MOV AX,10A0 2字节

MOV AL,[BX] 1字节

MOV AX,[BX+SI+1000] 2字节

MOV [BX],20 dst不能为存储器

MOV BYTE PTR[BX],20 2字节

MOV DS,10A0 不能对DS直接赋值

MOV DS,AX 2字节

MOV SS,DS src和dst不能同时为寄存器

MOV SS,[2400] 1字节

MOV [BX], [SI] src和dst不能同时为存储器

MOV 6, AL 立即数不能作为目的操作数

MOV AL, BX stc比dst位数多

四.用DEBUG命令设堆栈指针SP=2000H,AX=5000H,BX=3000H。输入以下程序:

PUSH AX

PUSH BX

POP AX

POP BX

1、用单步执行程序,注意堆栈指针SP的变化,填写堆栈的内容。

四、实验小结

相关文档
最新文档