思路:我們可以在程序中定義數據來獲取一段空間,然後將這段空間當作棧空間使用。
例如:
Assumecs:code
Codesegment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0
;用dw定義16個字型數據,在程序加載後,將獲取16個字的內存空間,存放這16個數。在後面的程序中將用這段內存當作棧使用。
start: mov ax ,cs
mov ss ,ax
mov sp,30h
mov bx,0
mov cx,8
s:push cs:[bx]
add bx ,2
loop s
Mov bx ,0
Mov cx ,8
S0:pop cs:[bx]
add bx,2
loop s0
Mov ax ,4c00h
Int 21h
Code ends
End start
我們將代碼段中32h到64h這段偏移內存當作棧空間來使用,
我們將內存中申請這些空間有兩個作用一個是定義數據還有一個就是開闢新的內存空間。