实验四

Posted gares

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验四相关的知识,希望对你有一定的参考价值。

实验结论

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

代码如下

技术分享图片

对其进行编译链接

技术分享图片

运行这个程序,结果如下图

技术分享图片

 

将源代码程序中字数据0403H→修改为0441H

技术分享图片

对其进行编译链接后,结果如下

技术分享图片

 

 

 

 

 

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

代码为:

技术分享图片

对其进行编译连接

技术分享图片

 

运行这个程序,先查看0:200开始的64个内存里初始值,以做比较

技术分享图片

 

用t命令单步执行

技术分享图片

(部分截图)

 

用g命令运行

技术分享图片

 

最后再用d命令查看内存单元,以检验

技术分享图片

 

 

 

 

 

(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。

assume cs:code   

code segment   

     mov ax,  1    ;

     mov ds,ax   

     mov ax,0020h   

     mov es,ax   

     mov bx,0   

     mov cx,  2     ;

  s: mov al,[bx]   

     mov es:[bx],al   

     inc bx   

     loop s   

     mov ax,4c00h   

     int 21h   

code ends   

end

 

1答案为:cs(该程序目的是复制“mov ax,4c00h"之前的指令,数据段要与代码段相同,所以应该将cs赋值给ax)

2答案为:17h(各指令所占字节之和为23,所以复制的代码段长度为17h)

 

运行该程序,并对其u命令反汇编为

技术分享图片

使用g命令将其执行,并查看0:200开始内存单元的内容

技术分享图片

最后用u命令反汇编从0:200开始的内存单元,从图中可见,程序已复制成功

技术分享图片

 

 

 

 

 

总结与体会

1)在书写源代码时,注意十六进制的h,漏加多加会导致编译出错

2)注意loop中设置cx的次数

3)cx在载入程序后会保留程序的长度

3)数据和代码对CPU来说是没有去别的,只要CS:IP指向的就是代码

 

以上是关于实验四的主要内容,如果未能解决你的问题,请参考以下文章

20165332实验四 Android开发基础

2018-2019-20175205实验四《Android程序设计》实验报告

区块链技术与应用实验报告(实验四)

区块链技术与应用实验报告(实验四)

区块链技术与应用实验报告(实验四)

实验四 《Android开发基础》 20175301李锦然实验报告