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

   

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

 

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

 

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

 

 

结果为 ax=0002 bx=4026

(2)使用a命令写入汇编指令

 

使用t命令执行

 

结果为 ax=0002 bx=4026

2、将下面三条指令写入从20000开始的内存单元中,利用这三条指令计算28次方

mov ax1

add axax

jmp 20000003

 

执行结果

 

结果为 ax=0100

3、查看内存的内容

PC主机板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个生产日期并改变

 

我们使用d命令查看内存空间,发现生产日期在FFF000F5

 

然后我们使用e命令试图改写它,但未成功,原因是ROM为只读存储器不能被修改

4、向内存从B8100H开始的单元中填写数据,如:

-e   B8100000   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