汇编实验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]。
第三题的代码我同学能运行我不行,不知道神马情况。