实验 4 [bx]和 loop 的使用
学院 计软院 专业 计科6班 年级 2017 级
姓名 谢宏伟 学号 20171308260
一、实验目的
1. 理解和掌握寄存器间接寻址方式[bx]
2. 通过汇编指令 loop 的使用理解编程语言中循环的本质
3. 熟练掌握使用 debug 按需调试完整汇编源程序的方法
二、实验准备
1. 学习/复习第 5 章使用[bx]和 loop 实现循环的编程应用示例(教材 5.5 节,5.8 节)
2. 复习第 3 章「栈」的知识
3. 结合第 4 章课件,复习完整汇编源程序编写→汇编→连接→运行→调试的方法
三、实验内容
1. 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个
字单元重复填充字数据 0403H。
1.先使用edit 写入源程序
2.编译源程序并且连接它
3.执行该程序,此时屏幕上打印了一排红色星星
将源代码程序中字数据 0403H→修改为 0441H,再次运行,截图显示运行结果。
此时出现了一排红色大写字体A;
2. 综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据
0~63(3FH)。
1.依旧使用edit来写源程序。
2.然后编译连接该程序。
3.使用debug去查看0:200~0:23F,确认是否将 0~63 传送至此段内存区域。
确实这段内存的内容被修改成了指定内容。
3. 实验内容 3
(1)任务三:下面的程序的功能是将“mov ax,4c00h"前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行成果。
(2)汇编连接后,灵活使用 debug 的 t 命令、g 命令、p 命令调试,用 d 命令查看 0:200
之后的若干字节,观察是否将 mov ax, 4c00h 之前的指令复制到指定内存。
1.先假设cx值为8。
编译连接该程序、
用debug加载333.exe,用r命令查看CX=001C,说明程序的长度为001CH-5H=17H
回去源程序将CX的值从8h 改为17h。
在编译连接。
再用debug去使用t命令来一步步执行程序:
最后使用g命令全部执行,查看0:200 内存处的内容,
结果已经将 mov ax, 4c00h 之前的指令复制到指定内存。
总结与体会:
本次实验我学会了[bx]的意义和作用,以及loop这个循环的使用方法。其中cx用来控制循环的次数,我可以通过r命令查看cx的值来确定长度。
以及g命令和p命令也了解到了一些。还需要更深入理解本节知识点。