实验任务:
(1)使用debug,将下面程序段写入程序,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。
方法一:用E命令将机器码写入内存,利用反汇编指令U可生成汇编指令。如下:
汇编指令执行完之后,继续执行的指令是什么?
方法二:直接用A命令将汇编指令写入。如下:
之后就与上图的一样。
注意:默认为16进制,在数字后面加h会报错。
(2)将下面三条指令写入从2000:0开始的内存单元中,利用这三条指令计算2的8次方。
mov ax,1
add ax,ax
jmp 2000:0003
过程中注意:1. jmp指令会打错成jump。2.由于忘记是默认16进制,对之后出现的10,20,40......保持疑惑,连续试了几遍后才发现。
(3)查看内存中的内容。
PC主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的莫几个单元中,请找到这个生产日期并试图改变它。
首先使用d命令查看:
使用e命令修改:
发现并没有什么用!!??
(4)向内存从B8100H开始的单元中填写数据,如:
-e B810:0000 01 01 02 02 03 03 04 04
先填写不同数据,观察产生的现象;再改变填写的地址,观察产生的现象。
为什么有的会变有的不会?
但是好玩啊!
总结与体会:
其实一开始我是半蒙的状态,在舍友的帮助下成功解决了一些问题。首先是输入数据的时候不要加上h以免报错,此外q命令退出debug以及cls清屏已熟练操作。对于任务三是有些生疏的,在书本上找到了解答。任务四老师在课堂上演示过,但自己试了一试之后,感觉明显记得更加清楚。纸上得来终觉浅,觉知此事要躬行。书本上的只是枯燥无味,但自己实验一下,会有不小的收获。