实验2 指令格式与寻址方式报告.doc
文本预览下载声明
实验2 指令格式与寻址方式
实验目的:熟悉汇编语言指令格式,掌握常用数据定义伪指令,理解各种寻址方式的应用。掌握调试工具Windbg.exe的使用。
实验要求: (1)通过调试程序理解常用数据定义伪指令的作用。
(2)通过调试程序理解各种寻址方式的应用。
(3)熟练掌握调试工具Windbg的使用方法。
实验内容:
上机汇编连接例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
用Windbg调试例4-1,用Disassembly窗口察看机器码。指出指令的中操作数。
在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,两个字节,这条指令所在的地址。紧接着的这条指令的下一条指令ret所在的地址。所谓当前EIP寄存器的值应该,目标地址start的偏移地址,所以位移量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寄存器内容的变化情况。
察看内存address的内容,观察它与地址quit的关系。
观察指令jmp address执行前后EIP寄存器内容的变化。
显示全部