实验日期:2022年9月20日
一、实验预习报告
1.实验相关知识的简述:汇编指令由 操作码字段 和 操作数字段 构成。对于双操作指令,第一个操作数称为目的操作数,表示操作后的结果;第二个操作数称为源操作数,表示来源操作数。两者以逗号分隔。与数据有关的寻址方式划分为三类:立即寻址方式,寄存器寻址方式,存储器寻址方式。要求掌握下列七种与数据有关的寻址方式。其中后五种属于存储器寻址方式。
立即寻址方式(Immediate addressing)
寄存器寻址方式(Register addressing)
直接寻址方式(Direct addressing)
寄存器间接寻址方式(Register indirect addressing)
寄存器相对寻址方式(Register relative addressing)
基址变址寻址方式(Based indexed addressing)
相对基址变址寻址方式(Relative based indexed addressing)
2.实验原理的预习情况: 所谓寻址方式,即指令中提供操作数或操作数地址的方式。通俗地说就是寻找操作数地址的方法。寻址方式的数量代表了微机系统对存储器管理能力的强弱,合理地使用寻址方式可以扩大访存空间,缩短指令长度,满足各种程序设计需要。
3.实验注意事项:执行 T 命令之前,指令指针寄存器 IP 的值要用 R IP 修改成第一条指令的偏移地址,这样 T 命令才能从第一条指令开始执行。在 DEBUG 下数据都是十六进制表示的,因此不需要用 H 标注,同时要把十进制变为十六进制才行。
二、实验报告
1.实验目的与要求:
1.观察和分析在不同的寻址方式下存储单元逻辑地址的表示以及指令的执行结果。
2. 熟练掌握 DEBUG 的 R 命令、A 命令、T 命令和 D 命令的用法。
2.实验环境:DOS环境
3.设计思路:1. 两个操作数相减运算,结果放在数据段的 16 号单元。
(1)AX、BX 寄存器分别赋值为 0008H 和 0010H;
(2)AX 和 BX 的内容相减(SUB 指令),结果在 AX 中;
(3)用直接寻址方式将相减的结果保存到 16 号单元。
2. 两个操作数相加运算,结果放在附加段的 0020H 号单元
(1)AX 的值为 0034H;
(2)AX 和 65 相加,结果在 AX 中;
(3)用寄存器间接寻址方式(段超越)保存运算结果。
3. 将 AX 寄存器中的 1234H 写入数据段的 2 号单元,读出 3 号单元的 12H 传送给 BL 寄存器(寻址方式自定)。
4.程序框图:
5.实验过程及截图记录:
三、实验总结(实验结果分析): 本次实验让我进一步熟悉了DEBUG的各种指令,如A是开始输入汇编指令,D是查看内存单元,T是单步执行等等,另外D DS:偏移地址 L 2可以进一步查看得到的结果,实验一开始我对多少号单元理解的不深刻,用十进制数来表示,后来发现需要转化成十六进制的形式才符合规范,此外,我理解了选择寻址方式的原则:要满足条件并且高效。最终应达到运行速度快、指令代码短的高效率目标程序的目的。立即寻址和寄存器寻址的指令长度和指令执行时间都比存储器寻址方式要高效一些,但也分不同场合选择更合适的寻址方法。
学习时间 309分钟
操作时间 108分钟
按键次数 2309次
实验次数 8次
报告字数 2127字
是否完成 完成