实验2 指令格式与寻址方式报告

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

实验2 指令格式与寻址方式

实验目的:熟悉汇编语言指令格式,掌握常用数据定义伪指令,理解各种寻址方式的应用。掌握调试工具Windbg.exe的使用。

实验要求:(1)通过调试程序理解常用数据定义伪指令的作用。

(2)通过调试程序理解各种寻址方式的应用。

(3)熟练掌握调试工具Windbg的使用方法。

实验内容:

1、上机汇编连接例4-1

.386

.model flat,stdcall

.stack 4096

.data

cr equ 13

var word 20 dup(?)

.code

start:

mov al,0

mov ax,190

mov eax,-1

mov eax,0ffffffffh

mov eax,offset var

mov eax,sizeof var

mov eax,length var

mov eax,type var

mov eax,$

mov eax,cr

ret

end start

(1)用Windbg调试例4-1,用Disassembly窗口察看机器码。指出指令的中操作数。

(2)在Windbg下单步执行例4-1,观察eax寄存器的内容变化情况。

2、上机汇编连接例4-8

代码:.386

.model flat,stdcall

.stack

.code

start:

mov eax,0

jmp start

quit:ret

end start

(1)用Windbg调试例4-8,用Disassembly窗口察看机器码

(2)在Windbg下单步执行例4-8,观察EIP寄存器内容的变化情况。

(3)分析指令jmp start的机器码的含义。观察这条指令执行前后EIP寄存器内容的变化。

Jmp start 对应的机器码是EBF9H,两个字节,这条指令所在的地址是00401015H。紧接着的这条指令的下一条指令ret所在的地址是00401017H。所谓当前EIP寄存器的值应该是00401017H,目标地址start 的偏移地址是00401010H,所以位移量=00401010-00401017=-7,机器码EBF9中包含着位移量-7的补码F9,EB是操作吗

3、上机汇编连接例4-9

.386

.model flat,stdcall

.stack

.data

address dword quit

.code

start:

jmp address

quit:ret

end start

(1)用Windbg调试例4-9,用Disassembly窗口察看机器码

(2)在Windbg下单步执行例4-9,观察EIP寄存器内容的变化情况。

(3)察看内存address的内容,观察它与地址quit的关系。

(4)观察指令jmp address执行前后EIP寄存器内容的变化。

相关文档
最新文档