DEBUG调试程序 (2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的变化,填写堆栈的内容。
.
四、实验小结