式武神

导航

汇编语言实验一

1.教材实验1

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

用E命令将指令写入内存:

 

用A命令将指令写入内存,并用T命令单步执行:

 

 

 

 

 

(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方

 

得出ax=0040H=64=2的八次方

(3)PC主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并且试图改变它。

找到了ROM的生产日期,但是无法修改。因为向C0000-FFFFF的内存单元中写入数据的操作是无效的,因为这等于改写只读存储器中的内容。

 

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

-e B810:0000 01 01 02 02 03 03 04 04

请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。

8086CPU的显存地址空间是A0000H-BFFFFH,所以向内存从B8100H开始的单元写入数据时,数据会显示在显示器上。

 

2.教材实验2

(1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。

mov ax,[0]      ;ax=5150

add ax,[2]       ;ax=A4A2

mov bx,[4]      ;bx=5554

add bx,[6]      ;bx=ACAA

push ax          ;sp=00FE;修改的内存单元的地址是2200:00FE内容为A4A2

push bx     ;sp=00FC;修改的内存单元的地址是2200:00FC内容为ACAA

pop ax    ;sp=00FE;ax=ACAA

pop bx    ;sp=0100;bx=A4A2

push [4]     ;sp=00FE;修改的内存单元的地址是2200:00FE内容为5554

push [6]          ;sp=00FC;修改的内存单元的地址是2200:00FC内容为5756

 

(2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变?

对图3.19的实验过程用T命令单步执行结果为:

原因:CPU将CS,IP及一些变量也压入栈内。

posted on 2020-10-10 19:33  式武神  阅读(414)  评论(4编辑  收藏  举报