文档详情

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

发布:2017-06-20约1.33千字共8页下载文档
文本预览下载声明
实验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寄存器内容的变化。
显示全部
相似文档