实验环境
实验二和后边的实验三都是在机房完成的,没有找到机房里的截屏工具,所以只能用简陋的移动设备给拍下来,虽然这样很影响观感,下次上机把自己的笔记本带上。
实验任务
(1)使用Debug,将程序段写入内存,逐条执行,根据指令执行后的实际情况填空
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=5BEA
add ax,[2] ;ax=5CCA
mov bx,[4] ;bx=30F0
add bx,[6] ;bx=6024
push ax ;sp=00FE; 修改后的内存单元的地址是2200:FE内容为5CCA
push bx ;sp=00FC; 修改后的内存单元的地址是2200:FC内容为6024
pop ax ;sp=00FE; ax=6024
pop bx ;sp=0100; bx=5CCA
push [4] ;sp=00FE; 修改后的内存单元的地址是2200:FE内容为30F0
push [6] ;sp=00FC; 修改后的内存单元的地址是2200:FC内容为6024
以下是debug程序的图片
(2)观察实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变?
学到这章的时候,就一直看到关于中断机制的说法,但是编者也没有具体解释到底谁是什么原因,在网上看到有人有同样的困惑,最终在250页12.12发现了解释
用T命令执行一条指令后,CPU响应单步中断,在mov ss,ax指令执行后,CPU根本就不响应任何中断,CPU接着向下执行后边的指令mov sp,10,然后响应单步中断,我们才看到结果
实验总结
经过这次实验,把之前书上看到的内容感受了一下, 加深了理解,而且也有自己去寻找自己不明白的解释,最终回归了书本,
下次一定要带电脑去机房。