任务1: 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H。
我们可以看到确实是得到了我们想要的结果
下面我们按着要求 再对代码进行些改动:
将源代码程序中字数据0403H→修改为0441H,再次运行,截图显示运行结果。
从图中我们可以看到了结果却是发生了改变。
任务2:2. 综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据 0~63(3FH)。
我们利用了d命令进行查看,发现其中的内容确实已经发生了改变。
3:代码填空:
assume cs:code
code segment
mov ax,_____
mov ax,0020h
mov es,ax
mov bx,0
mov cx,_____
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
首先第一个空应当放入程序的入口地址cs
由于我们目前不知道循环的次数 所以我们可以随意的输入9h;
再进行各种操作:
从所取得的寄存器cx中我们发现它的值为001c又因为原本程序就有本身的长度0005所以减去之后就是我们得到的17h
我们来查看最后的结果:
从图中的结果我们可以知道
确实已经复制成功了。
实验收获:
1 学会了bx和loop的运用 收获了不少新的知识点,得到了很多自己想要的,从别人的博客中也学到了不少关于push的知识。
2 利用反汇编的方法可以查看到许多无法知道的事情,这次实验确实收获了很多的。