实验任务二

       v

 1. 理论

e 0021:0,30H,31H,32H,33H,34H,34H,36H,37H

mov ax,0021

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,ax

move sp,0100

move ax,[0]     ;ax=3130 h 

add ax,[2]       ;ax=6462h

move bx,[4]   ;bx=3534h

add bx,[6]      ;bx=6c6ah

push ax        ;执行后sp=00FE  ,修改的内存单元地址是22100;内容是将ax中的值6462h传递给栈

push bx       ;执行后sp= 00FC ,修改的内存单元地址是22098; 内容是将BX中的值6c6ah传递给栈

pop ax ; 执行后sp=00FE,内容是将栈:22096中的值6c6ah传递给AX然后将SP=SP+2;

pop bx;执行后SP=0100.内容是将栈22098中的值6462h传递给bx然后SP=SP+2;

push [4] ;执行后sp =00FE;修改的内存单元地址是22100;内容是将0021:4字单元中的值3534h传递给栈

push[6];执行后sp=00FC;修改的内存单元地址是22098;内容是将0024:6字单元中的值3736h传递给栈

实际:

 

 

 

 执行第一步:mov ax,0021

 

 

mov ds,ax

 

mov ax,2000

 

 

mov ss,ax    和mov sp,0100一起执行了

 

 

 

mov ax,[0]

 

 

 

 add ax,[2]

mov bx,[4]

 

add bx,[6]

push ax

push bx

pop ax

 

 

pop bx

push [4]

push [6]

与理论一致

 

2。

-a

mov ax,2000

mov ss,ax

mov sp,10

mov ax,3123

push ax

mov ax,3366

push ax

-e 2000:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

 

执行mov ax,2000

mov ss,ax和mov sp 10 ,  2000:0 f 的值发生变化了  寄存器IP ss,sp变了

ov

 mov ax,3132  2000:0 f 继续发生变化:AX IP发生改变

push ax   ; 2000:0 f改变,SP,IP改变

mov AX,3366: 2000:0 f改变   AX,IP 改变

PUSH ax,2000:0 f改变    IP SP改变

 

 

 

 总结

使用T修改栈段寄存器SS的指令会使其与上一条指令一起执行

初始时栈顶 与栈底的值相同

 2〉 2000:0 F 总是出现073F  这个地址和IP 地址  根据图片的对比从2000:f 到2000:0 一次性出现IP,CS的地址再出现指令例如: push ax :10 01 3F07 A3 01

翻译为: 073F:0110 01 A3

 

posted @ 2018-10-27 21:02  哈曼  阅读(229)  评论(0编辑  收藏  举报