代码改变世界

实验二

2018-11-01 19:12  天培  阅读(168)  评论(4编辑  收藏  举报

写入如下程序段

执行

得出实验结果

mov ax,ffff

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

 

mov ax,[0]    ;ax= 5BEAH

add ax,[2]    ;ax= 5CCAH

mov bx,[4]    ;bx= 31F0H

add bx,[6]    ;bx= 6122H

 

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

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

pop ax        ;sp= 00FCH ,ax= 6122H

pop bx        ;sp= 00FEH ,bx= 5CCAH

 

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

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

 

(2)

因为在debug使用T等指令引发了中断造成的,中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是你操作的数据了。  (此题答案来源网络)