实验四报告

实验名称 实验 4 [bx]和 loop 的使用

实验日期 11/21学院 计软院 专业 计科 年级 2017 级  4 班次 姓名  任心怡  学号  20171308152

一、实验目的

1. 理解和掌握寄存器间接寻址方式[bx]

2. 通过汇编指令 loop 的使用理解编程语言中循环的本质

3. 熟练掌握使用 debug 按需调试完整汇编源程序的方法

二、实验准备

1. 学习/复习第 5 章使用[bx]和 loop 实现循环的编程应用示例(教材 5.5 节,5.8 节)

2. 复习第 3 章「栈」的知识

3. 结合第 4 章课件,复习完整汇编源程序编写→汇编→连接→运行→调试的方法

三、实验内容

1. 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据 0403H。

代码如下:

进行编译链接和运行

2. 综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据 0~63(3FH)。

(1)必做:综合使用 loop, [bx], mov 实现

代码如下:

进行编译链接运行,得到运行结果:

(2)选做*:利用栈的特性,综合使用 loop,push 实现(限定仅使用 8086 中已学过 指令实现)

代码如下:

得到运行结果:

3. 教材实验 4(3)(P121)

经过尝试后,最终得出代码如下:

没有说明从哪个具体位置开始复制,自动默认为从cs段寄存器开始

因为 mov ax,4c00h前指令所占17个字节 所以 mov cx,17

实验总结:

一开始写代码时候【bx】的使用并不到位,后来查看书中代码后发现,【bx】是一个内存单元,偏移地址是bx

可以配合mov指令将数据放入【bx】中。

loop指令需要通过改变cx的值来确定循环数,而cx的值要看具体问题而定。

通过前两小题的代码编写后,我发现使用栈的特性来实现相同功能时,写起来就很轻松。一开始看见是选做,想着先试试吧,结果编写起来毫不费劲,还挺快乐哈哈。

这次实验重要要掌握的是:【bx】和loop的指令使用。

也可以尝试使用段前缀来表达内存单元。

   

猜你喜欢

转载自www.cnblogs.com/DDDDDdian/p/9995566.html