实验四
实验内容
1. 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H。
mov ax,0b800h
是因为编译器不支持字母开头。
将源代码程序中字数据0403H→修改为0441H,再次运行,截图显示运行结果。
实验内容 1 和 2 本质上是一类问题,都是把数据送到一组连续的内存单元。不 同之处仅在于,实验内容1是将一个常数(字数据) ,送到指定的一组连续的字单元;而实验内容 2是将一组连续的字节数据,送到指定的连续的字节单元。在程序中改变偏移地址时, 要注意做不同的处理。
2. 综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据 0~63(3FH)。 (1)必做:综合使用loop, [bx], mov实现 (2)选做*:利用栈的特性,综合使用 loop,push 实现(限定仅使用 8086 中已学过 指令实现)
遇到int 21h用p命令
遇到循环用g命令
3. 教材实验4(3)(P121)
先随便填一个15运行看看
由mov ax,4c00的内存单元地址为0017h和第一个地址为0000h,知道由17h的字节数。
空白处mov ax,______应填cx
空白处mov cx,______应填23
总结与体会
loop指令的格式是:loop 标号,CPU 执行loop指令的时候,要进行两步操作:
① (cx)=(cx)-1;
② 判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。
通常我们用loop指令来实现循环功能,cx中存放循环次数。
出现在访问内存单元的指令中,用于显式地指明内存单元的段地址的"ds:""cs:""ss:""es:",在汇编语言中称为段前缀。