汇编语言 实验四

本文详细介绍了使用loop指令和[bx]寄存器在指定内存区域填充特定数据的汇编编程技巧,通过两个具体任务展示了如何实现数据填充和传送,同时分享了实验过程中的收获和学习心得。

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

我们可以看到确实是得到了我们想要的结果

下面我们按着要求 再对代码进行些改动:

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

从图中我们可以看到了结果却是发生了改变。

 

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

我们利用了d命令进行查看,发现其中的内容确实已经发生了改变。

 3:代码填空:

assume cs:code

code segment

  mov ax,_____

  mov ax,0020h

  mov es,ax

  mov bx,0

  mov cx,_____

s:mov al,[bx]

  mov es:[bx],al

  inc bx

  loop s

  mov ax,4c00h

  int 21h

code ends

end

首先第一个空应当放入程序的入口地址cs

由于我们目前不知道循环的次数 所以我们可以随意的输入9h;

再进行各种操作:

 

从所取得的寄存器cx中我们发现它的值为001c又因为原本程序就有本身的长度0005所以减去之后就是我们得到的17h

我们来查看最后的结果:

从图中的结果我们可以知道

确实已经复制成功了。

实验收获:

1 学会了bx和loop的运用 收获了不少新的知识点,得到了很多自己想要的,从别人的博客中也学到了不少关于push的知识。

2 利用反汇编的方法可以查看到许多无法知道的事情,这次实验确实收获了很多的。

转载于:https://www.cnblogs.com/QiaoGeGe/p/9974133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值