汇编实验4

一、实验目的
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。

复习:内存数据:

段地址:ds,偏移地址:用[]括起来

ss:栈段段地址

cs:代码段段地址

代码:

有一点小疑问,不知开头ax为何一定要写成0b800h,写成b800h就报错。

编译、链接、运行:

 

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

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

复习:

t--单步执行代码
r--查看查看寄存器
d--查看内存(d 1000:0 就能查看该地址存储了什么内容)

汇编、链接:

 这个程序似乎没有运行结果。那我们改用debug查看内存:

可知结果正确。

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

本题完全按书上代码来没法运行....

四、实验总结:

本次实验学习了[bx],loop,暴露了不少小问题,如各段地址的区别,以及第二题不能将bx赋值给[bx]。

第三题的代码我同学能运行我不行,不知道神马情况。

posted on 2018-11-19 22:22  scp507  阅读(267)  评论(0编辑  收藏  举报