基本介紹
- 中文名:後進先出存儲列表
- 外文名:The back in comes out the list of stores
- 又稱:棧
- 類型:數據結構
- 定義:數據項按序排列的數據結構
- 套用學科:計算機原理
程式簡介,定址方式,
程式簡介
後進先出存儲器(LIF0)又稱堆疊,它的工作情況與FIFO相反,LIFO是按後寫入的數據先讀出的順序進行存取的,LIFO存儲器只有一個數據連線埠,它既是輸入口,又是輸出口。LIFO與FIFO存儲器一樣沒有外部地址碼輸入端,而是由內部的指針指示存取的地址。LIFO只需一個指針。復位時,指針指向最末一個單元(棧底)。每寫入一個數據,指針減1。當指針值減為0時,表示LIFO充滿數據。每讀出一個數據,指針加1。當指針值為最大值(即指向棧底)時,說明LIFO中沒有數據了。通常把LIFO(堆疊)的寫入操作叫壓入,讀出操作叫彈出。
定址方式
堆疊存儲器指定兩個暫存器來定址:堆疊指針ESP和堆疊段暫存器SS,使用堆疊段之前首先要定義,程式中對堆疊段的定義語句為:STACK 200H;就是對堆疊的定義,即在記憶體中劃分200H~SS:000001FFH,那么堆疊指針ESP的初值為00000200H。
當字數據AX壓入堆疊時,高8位放入由ESP-1定址的單元,低8位放入由ESP-2定址的單元,然後ESP中的值減2。當字數據從堆疊彈出到BX時,低8位從ESP定址的單元移出,高8位從ESP+1定址的單元移出,然後ESP暫存器加2。