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

实验 4 [bx]和 loop 的使用

时间:2018-11-18 16:04:06      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:size   内存   填充   image   连续   基本   分享   bubuko   col   

实验结论

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

1.源代码及实验结果

技术分享图片技术分享图片

运行结果:屏幕中央出现一排红色的心?

2.将源代码程序中字数据 0403H→修改为 0441H,再次运行

技术分享图片技术分享图片

运行结果:屏幕中央出现一排红色的A

 

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

1.源代码

技术分享图片

2.汇编、链接无误后,使用g命令调试,用 d 命令查看 0:200~0:23F

技术分享图片

这段代码确实将 0~63 传送至 0:200~0:23F的内存区域。

 

实验3:将“mov ax,4c00h”之前的指令复制到内存0:200处。

1.第一个空填cs,表示当前指令的段地址;第二个空填循环次数,因为此时还不知道循环次数,先填1。

技术分享图片

2.进入debug后对代码反汇编,发现“mov ax,4c00h”这行代码前面的代码长度为17h,所以循环次数为17h。

技术分享图片

3.完整代码

技术分享图片

4.汇编连接后,使用g命令调试,并用 d 命令查看 0:200之后的若干字节

技术分享图片

通过与反汇编的机械码比较,实验代码确实将 mov ax, 4c00h 之前的指令复制到内存0:200处。

 

总结与体会

  通过本次实验,我基本掌握了【bx】和loop的使用,让我能更简洁地解决一些涉及循环的问题,同时也复习了之前实验的操作。

  同时,我有一个问题:在实验3中,能否不用反汇编就能知道代码长度,从而快速确定循环次数?如果不用反汇编就能知道的话,就能避免一些繁琐的操作了。

 

实验 4 [bx]和 loop 的使用

标签:size   内存   填充   image   连续   基本   分享   bubuko   col   

原文地址:https://www.cnblogs.com/yangpengassembly/p/9977999.html

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