1、使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

首先用E命令将机器码写入内存再使用U命令反汇编查看汇编指令

使用rcs 和 rip改变CS:IP的指向

使用t命令一直执行得出结果

结果为 ax=0002 bx=4026
(2)使用a命令写入汇编指令
使用t命令执行

结果为 ax=0002 bx=4026
2、将下面三条指令写入从2000:0开始的内存单元中,利用这三条指令计算2的8次方
mov ax,1
add ax,ax
jmp 2000:0003
执行结果

结果为 ax=0100
3、查看内存的内容
PC主机板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个生产日期并改变

我们使用d命令查看内存空间,发现生产日期在FFF0:00F5上

然后我们使用e命令试图改写它,但未成功,原因是ROM为只读存储器不能被修改
4、向内存从B8100H开始的单元中填写数据,如:
-e B810:0000 01 01 02 02 03 03 04 04

屏幕上显示出4个不同颜色不同形状的图案,由此可知一个图案是由两个字节控制的

我们将第二个字节改为02,则第一个图案的颜色改变了,可见每两个字节中的后一个字节是控制图案的颜色

我们再将第一个字节改为02,则第一个图案的形状改变了,可知每两个字节中的前一个字节可以控制图案的形状

实验总结与体会
- 第二个实验中jmp指令可以跳到某一个内存地址,由此实现循环计算。
- 第四个实验产生图像的原因在查阅资料了解到,该段内存为显存。
在计算2^8时,发现第一二步执行需 2个t,执行第三步的t的时候实际上只是改变cs:ip的指向并没执行cs:ip指向内容的机器指令,后面的7个jmp 每个需要执行2个t才能执行add,所以一共需要执行16次t