实验四

实验内容

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:",在汇编语言中称为段前缀。

原文地址:https://www.cnblogs.com/byxy/p/10014188.html