实验内容
任务一:综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个字单元重复填充字数据 0403H。
(1)在dosbox下编写源程序:
(2)编译,连接之后执行:
执行结果是向屏幕上打印16个红心。
(3)将源程序字节数据0403h写改为0441h,再重新编译连接后执行:
结果由图案变成字母A
任务二:综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据0~63(3FH)
(1)编写源程序:
(2)编译连接再执行:
(3)用debug查看
结果向指定内存单元存入了0~63的字节数据
任务三:下面的程序的功能是将“mov ax,4c00h"前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行成果。
(1)由于不知道循环的实际次数,所以第二个空暂时填了10:
(2)编译连接后用debug查看反汇编:
在mov ax,4c00h 这一行可以看出循环应该是17次
(3)修改之后的源程序:
(4)重新编译连接:
(5)g命令执行后显示0:200处的结果:
总结与体会:
相比实验任务三印象比较深刻一点,这个实验让我明确了LOOP指令循环的具体次数,以及在实验过程中对于[bx]指令在反汇编时问题的处理。