实验四

 d实验内容

一:综合使用loop,【bx】,编写完整的汇编程序,事先向内存b800:07b8开始的连续16个字单元

重复填充数据0403H

 

所写的代码如下图

 

当运行后会出现下图所示的结果

 

 当把0403h改为0441h后结果如下图

练习2:综合使用loop,【bx】,编写完整汇编程序,实现像内存0:200-0:23f依次传送数据0-

63(3fh)

1.0000:200和0020:0从某种意义上将是等价的

于是代码可如下图所示

 

查看运行结果

无外部运行结果debug查看其内部存储情况

 如图可以发现内存已经被改写

2.代码如下图

debug运行结束后

 

 

 该实验结与只用loop和【bx】配合是相同的

 

 

 

练习3

根据其所叙述改程序的功能是将指令(可以理解成代码)复制到0:200处于是第一个空应该填cs

根据命题可知要想把所有的代码指令输入到0:200中,那么我们必须先知道代码所占的字节数而

在masm中寄存器cx的值表示代码的字节数,因此我们需要debug来查看cx中的字节数,因此无论给mov cx,_中的空输入什么都不影响实验结果

任意输入一个之后经过编译连接等步骤进行debug结果如下图

 

 其中cx=1ch于是mov 后所填的元素也应该是1ch于是代码如下图

 

经过debug后所得到的运行结果如下

 

 

 实验小结:

1.经过此次实验自己明白了如何使用loop指令以及【bx】还有段前缀

 2.注意当数据的开头不能为字母若开头为字母则在其前面加上符号0;否则代码是无法编译成功的

3.在写代码时直接写十进制数而不加后缀h时;dos会将其认为是十进制数而不是十六进制数

 4.在写代码时cx的作用很大 它不仅表示代码所占的字节数而且在loop循环中有控制循环次数的作用

 

posted @ 2018-11-17 22:53  Assembly123  阅读(100)  评论(0编辑  收藏  举报