一、实验内容:
1】
综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H。
源码如下:
然后运行出现了一排💗
将源代码程序中字数据0403H→修改为0441H,再次运行,运行结果如下图。
2】
#1.综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据 0~63(3FH)
源码如下:
实验结果截屏如下:
然后T T T T命令(这里可以看出没看书,g命令应该拥有姓名)
int出现后使用P命令
用D命令查看
#2.教材实验4(3)(P121)
源码如下:
(使用es来存放目标空间的段地址,用ds存放原始空间的段地址,避免了在循环中一直重置ds)
实验截屏如下
(076A:0018那行对着“mov ax 4c00h”,cx=18)
接着使用D命令查看
观察上下这两个图,确实“mov ax 4c00h”之前的指令复制到了0:200处
二、实验总结:
1)
第一个源码一开始写错了,直接把AX中的0403h传到了b800:07b8中,后来看别的同学的博客知道应该“分开al,ah按字在内存中存储的方式传递到内存单元中”,原来的码:
还有,在汇编程序中,数据不能以字母开头,要在前面加0.
按一开始那样做,好像不影响💗的输出,但改完数据之后就不一样了,如上图。
2)CX一开始不知道写多少,也是看了别人的博客。。。接着看书上的P108,大概是先随意对CX随意赋值再用U命令进行反汇编,参考mov ax,4c00h前的指令长度,接着讲CX改成那个再次编译连接运行。
3)G命令和P命令要学会运用
4)其实什么时候用al什么时候用ax还是分不清,我再好好看看8