实验一(自闭的第一天)

四.实验结论

实验任务

(1)使用Debug,观察每条指令执行后CPU中相关寄存器中内容的变化

1.输入指令:

2.由于初始的CS:IP是073F:0100,而自己写入的地址为1000:0,于是用r命令先修改CS和IP的值,再用t命令单步执行

 

 

 

CS:IP由1000:00→1000:03→1000:06继续t命令单步执行,发现变化的只有IP的值,由0006→009→000B→000D→000F→0012→0015→0017→0019→001B→001D→001F

(2)利用以下三条指令计算2的8次方

具体操作过程如下:

 

 

 

 

 

(3)查看内存中的生产日期

 

可以看出生产日期是1992年1月1日

接着尝试修改:

 

 可以发现无法修改

(4)向内存的单元中填写数据

输入书本中所给的内存地址和数据

 

同一内存地址存放不同数据:

 

不同内存地址存放相同的数据:

 

五.总结与体会

在第一个任务中,我是用a命令将指令写入内存,并用t命令进行单步执行,并关注每一次执行时ax与bx的变化,只能说掌握了相关命令的使用。

在第二个任务中, 第一次是2,二三次是4,第五六次是8 ,然后居然变成了10,当时一直想不通为什么会这样,理论上应该是16的,然而在看了论坛以后,发现  结果10是对的 这里的10是十六进制形式表示的  10h的十进制是32,也就是2的5此方。 当程序执行结果为100H时 也就是我们要得结果了2的8此方等于256 ,用十六进制表示是 100H。

在第三个任务中 ,找到生产日期,阅读了书的1.15节之后明白C0000——FFFFF表示各类ROM地址空间,而在这些内存单元中写入数据是无效的。

在第四个任务中,发现相同的数据填写在不同的内存地址中会显示在不同的地方,而相同的内存地址中填写不同的数据则会显示不同的内容。

原文地址:https://www.cnblogs.com/nilicon/p/9833569.html