概述
「四、实验结论」
1) 使用debug,将下面程序段写入内存,逐条执行,观察每条程序执行后CPU中相关寄存器的内容的变化
(1)使用-e 命令在1000:0的起始位置将程序的机器码读取到内存单元中,利用-d命令查看内存中的信息,利用u命令进行反汇编,将读取的机器码转为汇编指令;
(2) 改写cs:ip的指向,使cs:ip的值指向写入程序段的位置,然后用t命令分步调试,执行汇编指令
在每次执行完指令之后,寄存器的值发生改变,cs:ip 的值指向了下一个地址,从而可以执行下一条指令,cs:ip 的变化值为当前指令的长度。
2) 将下面3条指令写入从2000:0开始的内存单元中,利用这三条指令计算2的8次方。
(1)使用-a命令从地址为2000:0的内存单元开始写入
(2)更改cs:ip的指向,使其指向2000:0,用-t命令分条执行指令
在执行到指令 jmp 2000:0003时,cs:ip 重新跳转到开始,从而反复执行,以计算2的8次方
(3)多次用t命令执行循环后,得到结果
3) 查看内存中的内容
(1)用-r指令查看内存FFF00-FFFFF之间的内存信息
最后一行就是生产日期
(2)尝试改写生产日期
用-e命令对其进行改写
改写完之后,再次用-d命令显示内存信息
结果是无法修改。
4) 向内存从B8100H开始的单元处填写数据
(1)用-e命令向该内存单元处写入数据
出现了一些类似表情的东西,这是由于在8086CPU中0000-BFFFF是显存地址空间,当向显存地址空间输入数据时,这些数据就被显示卡输出到了屏幕上。
「五、实验总结与体会」
在实际操作之后,才会发现一些小的细节在平时的学习时很容易被忽略,而结果就是让你的操作很难继续下去,所以动手练习是一个非常好的学习过程,还有助于记忆。再一个是两次学习之间的间隔不能太长,要不然很容易忘记之前学的东西,至少一些细节会变得模糊,这时候再去重新翻书会浪费很多时间(我就是这样),所以即时复习和跟进学习真的是一个很有效率的学习方法。
转载于:https://www.cnblogs.com/molingu/p/9825535.html
最后
以上就是动人发箍为你收集整理的实验1的全部内容,希望文章能够帮你解决实验1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复