实验1 查看cpu和内存,用机器指令和汇编指令编程

四:实验结论

实验1

分别用E命令和A命令将指令写入内存:

(1)E命令

再用u命令进行反汇编:

(2)A命令

(3)用t命令逐条执行

在执行之前要注意cs:ip的指向,因此要用r命令进行修改:

再用t命令逐条执行(只展示部分)

 实验2

(1)先将三条指令写入内存中:

(2)修改cs:ip的值使其从2000:0的地址开始显示

(3)利用t命令逐条显示

最后ax寄存器中的值为0100,转换成十进制是2的8次方256。

 实验3

(1)用d命令显示内存fff00h~fffffh中的内容

显示的01/01/92就是要找的生产日期。

(2)尝试修改成01/11/26

字符是根据ASCll码显示的,所以将fff0:00f0这一行的6~13个16进制数改成30,31,2f,31,31,2f,32,36。

结果并没有改变:

翻书找了下原因:

cpu向内存地址为c000h的内存单元中写入数据操作的没有结果的,c000h单元中的内容不会被改变,c000h单元起始就是ROM存储器中的一个单元。因为这等于改写只读存储器中的内容。

实验4

(1)填写不同的数字和地址,粗略的观察体验了一下

 

(2)经过观察发现,一个彩色图案由两个内存单元控制

第一个内存单元控制样式:

第二个内存单元控制颜色:

再修改地址单元,发现图案的色彩和位置进行了变化。

五.实验总结与体会

  这次实验主要是熟悉了debug的编译环境,从配置到使用进行不断探索。掌握了a命令,e命令,d命令,r命令,t命令的使用。学会了用多种方式将命令写入内存,学会修改内存。也通过进一步探索得知向内存地址为c000h的内存单元中写入数据操作的没有结果的。

  我的疑问:在观察彩色图案的实验中,通过改变地址观察图案的不同位置。在我实验操作中,有时改变了地址单元但是彩色图案仍没有改变。通过搜索资料:8086的显存地址空间是A0000H~BFFFFH,其中B8000H~BFFFFH为80*25彩色字符模式显示缓冲区,当向这个地址空间写入数据时,这些数据会立即出现在显示器上。可是输入在这个范围内的地址有时仍然显示不出来。可能是不同的计算机分配的内存导致的,查资料也不是特别明白。

 

posted @ 2018-10-26 21:05  Jadeite  阅读(326)  评论(2编辑  收藏  举报