汇编实验二

(1)

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

用t命令执行:

就此可知:

mov ax,[0]; ax=C0EAH

mov ax,[2]; ax=C0FCH

mov bx,[4]; bx=30F0H

add bx,[6]; bx=6021H

push ax; sp=0100H;修改的内存单元的地址是2200:FE,内容为C0FCH

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

pop ax; sp=00FEH;ax= 6021H

pop bx; sp=0100H;bx=C0FCH

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

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


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

 

 用t命令和d命令交替进行,查看内存的改变:

 

猜想:也许栈中也包含着ss,sp的数据,最后清空的时候,这些数据也随之消失。


 总结:

铜鼓实验二,我从中学到了栈的内存地址的变化方式,也明白了栈的先进先出的特点。

同时对实验中猜想有所思考,这将对以后学习有所帮助。

猜你喜欢

转载自www.cnblogs.com/pglgq/p/9845321.html