棧
-
棧:是一種具有特殊的訪問(wèn)方式的存儲(chǔ)空間
后進(jìn)先出珊皿, Last In Out Firt,LIFO
-
8086提供了PUSH(入棧)和POP(出棧)指令來(lái)操作棧段的數(shù)據(jù)比如
- push ax是將ax的數(shù)據(jù)入棧,
- pop ax是將棧頂?shù)臄?shù)據(jù)送入ax
push ax (先挪后放:寫(xiě)數(shù)據(jù))
SP = SP - 2,SS:SP 指向當(dāng)前棧頂前面的單元,以當(dāng)前棧頂前面的單元為新的棧頂;
將ax中的內(nèi)容送入 SS:SP 指向的內(nèi)存單元處,SS:SP此時(shí)指向新棧頂
pop ax (讀數(shù)據(jù))
將SS:SP指向的內(nèi)存單元處的數(shù)據(jù)送入ax中;
SP=SP+2,SS:SP 指向當(dāng)前棧頂下面的單元,以當(dāng)前棧頂下面的單元為新的棧頂
思考
如果將10000H 到 1000FH 這段空間當(dāng)做棧,初始狀態(tài)棧是空的,此時(shí),SS=1000H,SP=?思考后看分析
SP的值應(yīng)10H
練習(xí)
編程:
(1)將10000H到1000FH 這段空間當(dāng)做棧,初始狀態(tài)棧是空的;
(2)設(shè)置AX=001AH,BX=001BH;
(3)利用棧,交換AX和BX中的數(shù)據(jù).
mov ax,1000H
mov ss,ax
mov sp,0010H
mov ax,001AH
mov bx,001BH
push ax
push bx
pop ax
pop bx
棧段
用SS存放棧段的段地址社付,用SP存放棧頂?shù)钠频刂?/em>
段總結(jié)
練習(xí)
分析
分析