码迷,mamicode.com
首页 > 其他好文 > 详细

实验四

时间:2018-11-26 00:09:25      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:连接   循环   img   执行   间接   png   字节   程序编写   大写   

   实验 4              [bx]和 loop 的使用                                                                 

 

学院    计软院                 专业   计科6班             年级 2017 级               

姓名    谢宏伟                  学号  20171308260

 

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

1.先使用edit 写入源程序

技术分享图片

 

 

2.编译源程序并且连接它

技术分享图片

 

 3.执行该程序,此时屏幕上打印了一排红色星星

技术分享图片

 

 将源代码程序中字数据 0403H→修改为 0441H,再次运行,截图显示运行结果。

技术分享图片

 

技术分享图片

 

 此时出现了一排红色大写字体A;

 

 

 

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

 

 

1.依旧使用edit来写源程序。

技术分享图片

 

2.然后编译连接该程序。

技术分享图片

 

 3.使用debug去查看0:200~0:23F,确认是否将 0~63 传送至此段内存区域。

技术分享图片

 

 技术分享图片

 

 确实这段内存的内容被修改成了指定内容。

 

3. 实验内容 3
(1)任务三:下面的程序的功能是将“mov ax,4c00h"前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行成果。

(2)汇编连接后,灵活使用 debug 的 t 命令、g 命令、p 命令调试,用 d 命令查看 0:200
之后的若干字节,观察是否将 mov ax, 4c00h 之前的指令复制到指定内存。

 

 

1.先假设cx值为8。

技术分享图片

编译连接该程序、

技术分享图片

 

用debug加载333.exe,用r命令查看CX=001C,说明程序的长度为001CH-5H=17H

 

 技术分享图片

 

 

回去源程序将CX的值从8h 改为17h。

在编译连接。 

再用debug去使用t命令来一步步执行程序:

技术分享图片

 

技术分享图片

 

 

 技术分享图片

 

 技术分享图片

 

最后使用g命令全部执行,查看0:200 内存处的内容,

结果已经将 mov ax, 4c00h 之前的指令复制到指定内存。

 

 

总结与体会:

 

本次实验我学会了[bx]的意义和作用,以及loop这个循环的使用方法。其中cx用来控制循环的次数,我可以通过r命令查看cx的值来确定长度。

以及g命令和p命令也了解到了一些。还需要更深入理解本节知识点。

 

实验四

标签:连接   循环   img   执行   间接   png   字节   程序编写   大写   

原文地址:https://www.cnblogs.com/1981ykls/p/10017711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!