实验1 8086汇编指令编码和调试

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了实验1 8086汇编指令编码和调试脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

实验结论

实验任务2

使用d命令查看生产时期的截图

实验1 8086汇编指令编码和调试

 

 

 可见,FFF0:0053处起的一串信息为生产日期

下面试图修改它

实验1 8086汇编指令编码和调试

 

 

 可见我们不能够修改这些信息,原因可能是这些重要信息记载在只读存储器上,不能被修改

实验任务3

使用e命令修改内存单元

以下是原内存内容

实验1 8086汇编指令编码和调试

以下是使用e命令修改内存之后的效果

实验1 8086汇编指令编码和调试

 

 以下是使用f命令修改内存之后的效果

实验1 8086汇编指令编码和调试

 

 实验结论4

逻辑地址是 20:30

物理地址是 00230H

以下是将内容写入内存的过程

实验1 8086汇编指令编码和调试

 

 

以下是写入汇编代码的过程

实验1 8086汇编指令编码和调试

 

 单步执行程序

实验1 8086汇编指令编码和调试

 

查看栈空间中的数据

实验1 8086汇编指令编码和调试

 

 此时栈中的数据已经正确写入

 然后使用d指令查看内存中的内容

实验1 8086汇编指令编码和调试

 

 可以看见,内存中的内容并没有改变

下面改变代码的内容:

实验1 8086汇编指令编码和调试

 

 单步执行后,查看内存中的内容

实验1 8086汇编指令编码和调试

 

 可以看见,内存中的内容发生了变化

实验任务5

在执行代码之前首先向栈空间中写入零数据

实验1 8086汇编指令编码和调试

然后向内存中写入汇编代码

实验1 8086汇编指令编码和调试

 

 单步执行汇编代码

实验1 8086汇编指令编码和调试

 

可见两条指令执行期间没有中断

因为如果ss和sp的修改是连续的两步,那么cpu不会中断,否则会造成栈错位

而且在执行的过程中,栈空间中的内容有变化

实验1 8086汇编指令编码和调试

内存单元有变化,可能是cpu在中断过程中向栈中填入了中断信息

实验任务6

以下是代码截图

实验1 8086汇编指令编码和调试

 

 以下是编译和链接的过程

实验1 8086汇编指令编码和调试

 

 下面是程序执行的结果

实验1 8086汇编指令编码和调试

 

 使用d命令查看程序的前缀内容:

实验1 8086汇编指令编码和调试

发现前两个字节确实是CD 20

实验任务7

补全之后的代码:

实验1 8086汇编指令编码和调试

 

第一空填code 

因为我们需要复制的是本程序的源代码,所以我们把代码段寄存器的内容送入ds,以待拷贝

第二空填0018h

第二空是循环的次数,也就是我们需要拷贝的数据的字节数,经过u命令查询,发现一共有18h个字节,所以此处填写18h

以下是执行代码,并反汇编查询的过程

实验1 8086汇编指令编码和调试

 

 可见,源代码已经正确地被拷贝

实验总结

经过这次的实验,我学到了非常多的东西

首先是熟悉了debug程序的使用,能够基本记住每个命令的功能,不需要等到要用了采取查功能

其次是对栈和循环之类的知识有了更深的理解,实验之后有了更实切具体的体会

也学到了一些新知识,比如在做实验5的时候,查阅书本知识,顺便了解了debug中断单步调试具体的实现原理,也就能够了解为什么ss和sP连续改变的时候,cpu不会产生中断

 

脚本宝典总结

以上是脚本宝典为你收集整理的实验1 8086汇编指令编码和调试全部内容,希望文章能够帮你解决实验1 8086汇编指令编码和调试所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。