[彙編學習]在代碼段使用棧

思路:我們可以在程序中定義數據來獲取一段空間,然後將這段空間當作棧空間使用。

 

例如:

 

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



 

我們將代碼段中32h64h這段偏移內存當作棧空間來使用,

我們將內存中申請這些空間有兩個作用一個是定義數據還有一個就是開闢新的內存空間。

發佈了39 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章