|实验 4 [bx]和 loop 的使用
实验 4 [bx]和 loop 的使用
一、实验结论
1.综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个字单元重复填充字数据 0403H。编译链接运行。
(1) 源代码
(2) 将源代码程序中字数据 0403H→修改为 0441H,编译链接运行。
2.综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据0~63(3FH)。
(1) 源代码
(2) 编译链接运行,用u命令查看loop命令之后的偏移地址,用g命令快速执行到loop之后的位置,用d命令查看,确实已经成功将0~63 传送至此段内存区域。
3. 课本p121实验4内容
(1) 源代码
(2) 编译链接运行。
指令执行时cs:ip指向指令,所以cs就是指令的段地址因此要将cs的值传递给ax间接传递给ds。
指令段的长度就是循环执行的次数cx的值,由于不知道代码段的长度先将cx的值设为0。
编译链接运行。用u命令查看mov ax,4c00h指令之前的偏移地址。
所以应该给cx赋值17h。
用u命令和 d 命令查看 0:200 之后的若干字节,已经将 mov ax, 4c00h 之前的指令复制到指定内存 。
二、总结与体会
学习时需要区分在debug命令下编程的表达方式和编译器masm要求的合法表达方式,这也是[bx]存在的原因。学会了loop指令。体会到了loop指令和[bx]连用的编程效率。