- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术
实验指导书
1 汇编基本原理 2
1.1 程序,可直接运行的程序,汇编源程序,汇编 2
1.2 CPU取指令、执行指令的过程 3
2汇编工具MASM5.0使用方法 3
2.1汇编源程序文件的建立方法 3
2.2编译阶段 5
2.3链接阶段 6
2.4程序调试阶段 7
3实验项目 9
实验一 寻址方式和汇编语言程序上机调试步骤 9
实验二 清零实验 11
实验三 码制转换实验 13
实验四 数据区移动实验 16
实验五 冒泡法排序实验 18
1 汇编基本原理
1.1 程序,可直接运行的程序,汇编源程序
程序
程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。
指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。
无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。
可直接运行的程序
当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。“直接运行”是指该程序中的指令代码可以被CPU直接执行。
汇编源程序
当程序中的指令是以“助记符”的形式存在时,该程序即为汇编源程序。该程序所在的文件即为“汇编源程序文件”。
汇编
每一条指令助记符都一一对应着一条指令代码。将以助记符形式存储的汇编源程序文件翻译成以指令代码形式存储的可执行程序文件的过程叫汇编。其逆过程叫反汇编。
换言之,以图1所示为例,经过汇编过程后,汇编源程序文件(*.asm)中以顺序排列方式存储着的所有指令助记符1到指令助记符n,都一一对应的转换成了可执行程序文件(*.exe)中的指令代码1到指令代码n。
图1
1.2 CPU取指令的过程目标代码文件,纯二进制代码文件,不能直接显示在屏幕上。包含源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,索引
图8
2.4 程序调试阶段
只有得到*.exe可执行文件后才可以进行调试,调试使用windows自带的debug.exe调试工具。使用方法是,在图8所示状态下,输入“debug abc.exe ”回车。进入debug调试环境提示符“-”,用“-U”命令可以显示反汇编信息。如图9所示,在-u命令后的第一行处,显示的“0b5e:0000”即第一条指令代码存放的地址,其中0b5e是指令段段地址,0000是偏移地址。该地址存放的指令代码是b44c,占两个字节(0000和0001两个便宜地址),因此第二行指令偏移地址从0002开始存放。该行右边的“mov ah,4ch”即“b44c”这条指令代码对应的助记符。
回顾汇编过程,源程序*.asm中存放的即为图9右边所示的助记符;经过masm.exe工具编译后得到目标文件*.obj,即得到了图9中间部分的指令代码(该指令代码可以直接被CPU识别),但是此时并没有得到物理地址,只有相对的浮动地址;再经过link.exe工具链接后得到可执行文件*.exe,即得到了图9左边所示的指令代码所在的具体物理地址。所以只有可执行文件.exe才可以直接运行,因为其中既包含了指令代码,又包含了指令代码所在的具体物理地址。
图9
在debug调试环境中,“-q”命令是退出调试状态。“-d”,“-g”,“-t”也经常使用,如图10所示。
图10
单步执行-t后状态字信息的含义如表1所示
溢出标志OF 方向标志DF 中断标志IF 符号标志SF 零标志ZF 辅助标志AF 奇偶标志PF 进位标志CF OV(1) DN(1) EI(1) NG(1) ZR(1) AC(1) PE(1) CY(1) NV(0) UP(0) DI(0) PL(0) NZ(0) NA(0) PO(0) NC(0) 表1 debug中状态字信息的含义
3软件实验项目
实验一 寻址方式和汇编语言程序上机调试步骤
实验目的
掌握在HQFC环境下8086的寻址方式。
掌握在HQFC环境下汇编语言程序上机步骤及调试过程。
掌握连续执行、单步执行、跳过执行及设置断点的方法。
掌握连续执行、单步执行过程中如何查寄存器、存储器、堆栈中的数据。
实验内容
1、在HQFC环境下单步执行下列指令,查看每条指令的执行过程,随时查看寄存器、存储器、堆栈及反汇编窗口并记录执行结果,查看、记录每条指令的操作码和操作数,查看、记录所有指令的反汇编结果。
code segment
assume cs:code
start: mov ax,1234h
mov bx,4321h
add ax,bx
文档评论(0)