汇编实验2

 

1.实验任务

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

1.代码

mov ax,0021

mov ds,ax

mov ax,2000

mov ss,ax

mov sp,0100

mov ax,[0]      ;ax= 3130

add ax,[2]       ;ax= 6462

mov bx,[4]      ;bx= 3534

add bx,[6]      ;bx= 6C6A

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

扫描二维码关注公众号,回复: 3841925 查看本文章

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

pop ax    ;sp= 00FE;ax= 6C6A

pop bx    ;sp= 0010 ;bx= 6462

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

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

PS:在程序段中有一段mov sp,0100在执行时未被显示,但是被执行。书上解释:debug的T指令在执行修改寄存器SS的指令时,下条指令也会被接着执行。

这有关中断机制。

2.截图

 

 

 

在程序段之前有e指令改写指令,到mov ax,[0],add ax [2]时,小端法,3130加3332即6462

2.观察下实验,分析2000:0到2000:f的内容会改变

 

 根据中断机制,程序段在 mov ss,ax时便将mov sp 10运行(用T指令执行一条指令后,cpu响应单步中断),标志寄存器入栈,cs IP出栈,而正好查看到改变的部分,所以才会有这样的效果

猜你喜欢

转载自www.cnblogs.com/allfishcook/p/9885789.html