回 帖 发 新 帖 刷新版面

主题:关于堆栈

每次用 push AX,SP-2

pop AX  SP+2
或是push [0200],pop [0200]


MOV     AX,0709
PUSH    AX
JMP     100

(用DEBUG)

AX=0709  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=137B  ES=137B  SS=137B  CS=137B  IP=0103   NV UP EI PL NZ NA PO NC
137B:0103 50            PUSH    AX
-t


AX=0709  BX=0000  CX=0000  DX=0000  SP=FFEC  BP=0000  SI=0000  DI=0000
DS=137B  ES=137B  SS=137B  CS=137B  IP=0104   NV UP EI PL NZ NA PO NC
137B:0104 EBFA          JMP     0100
-d FFEC
137B:FFE0                                      09 07 00 00               ....
137B:FFF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
                  
   
SP=FFEC,注意到09 07没有
FFEC -> 09
FFED -> 07
AL=09,AH=07      

AX=0709  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=137B  ES=137B  SS=137B  CS=137B  IP=0100   NV UP EI PL NZ NA PO NC
137B:0100 FF360002      PUSH    [0200]                             DS:0200=0201
-t

AX=0709  BX=0000  CX=0000  DX=0000  SP=FFEC  BP=0000  SI=0000  DI=0000
DS=137B  ES=137B  SS=137B  CS=137B  IP=0104   NV UP EI PL NZ NA PO NC
137B:0104 EBFA          JMP     0100
-d FFEC
137B:FFE0                                      01 02 00 00               ....
137B:FFF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

-d 200
137B:0200  01 02 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0210  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0220  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0230  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0240  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0250  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0260  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
137B:0270  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

我的意思是说,push进栈不改变数据在内存中的存储次序(Littel Endian方式)
                      
                 
                  
                  

回复列表 (共2个回复)

沙发

AH压倒了高地址,AL压倒了低地址
所以(BP+1)=07,(BP)=09
所以(BL)=07,(BH)=09
所以BX=0907

板凳

我刚学汇编,就这么多乱七八糟的见解
你肯定会以为我有病

我来回复

您尚未登录,请登录后再回复。点此登录或注册