SP 指的是堆疊指標
詳細解釋如下:
堆疊是一種資料結構,和他相類似的有佇列。
如果對資料結構有這樣的要求:
先將資料放到該區內,先放的後出後放的先出。這種結構這是堆疊。也就是說堆疊的資料操作口只有一端。它常用到回朔等演算法當中,說到資料結構,當然就要提到演算法。而佇列的操作正好與之相反。先放入的資料先出,後放的後出。它的資料操作是有兩個口,一邊只負責插入,一端只負責刪除。所以對其演算法是先入先出(FIFO,First input First Output).
而對於彙編來說,為了考慮這種結構,設定了兩個暫存器,一個是SS,是一個段暫存器。用作開闢一個數據單元作為一個堆疊區,該SS中的內容是該段的首地址。而SP則作為指標用,它有組合語言中的作用是為模組化等類似問題服務的!如果一個程式呼叫一個子程式,則進入該子程式前要先對主程式進行一個“現場保護”,以便子程式執行完畢後能順利地返回地主程式中依次執行。所以在一般的子程式開始的部分,先對程式中所用到的暫存器進行儲存,儲存到堆疊區中,從子程式返回到主程式中時再對堆疊區中的內容進行釋放還原。主程式還能進入到斷點繼續工作。正是這種原理,彙編程式設計時採用的是斷點(也就是中斷)的工作模式。也就是理解好堆疊就更好地理解了中斷。
堆疊區的使用不僅僅如此,由於其原理。可以使用堆疊區進行子程式的引數傳遞。堆疊是一個很重要的內容,但學習它不好理解時建議你先看一下資料結構。會更有利於你的理解!
SP 指的是堆疊指標
詳細解釋如下:
堆疊是一種資料結構,和他相類似的有佇列。
如果對資料結構有這樣的要求:
先將資料放到該區內,先放的後出後放的先出。這種結構這是堆疊。也就是說堆疊的資料操作口只有一端。它常用到回朔等演算法當中,說到資料結構,當然就要提到演算法。而佇列的操作正好與之相反。先放入的資料先出,後放的後出。它的資料操作是有兩個口,一邊只負責插入,一端只負責刪除。所以對其演算法是先入先出(FIFO,First input First Output).
而對於彙編來說,為了考慮這種結構,設定了兩個暫存器,一個是SS,是一個段暫存器。用作開闢一個數據單元作為一個堆疊區,該SS中的內容是該段的首地址。而SP則作為指標用,它有組合語言中的作用是為模組化等類似問題服務的!如果一個程式呼叫一個子程式,則進入該子程式前要先對主程式進行一個“現場保護”,以便子程式執行完畢後能順利地返回地主程式中依次執行。所以在一般的子程式開始的部分,先對程式中所用到的暫存器進行儲存,儲存到堆疊區中,從子程式返回到主程式中時再對堆疊區中的內容進行釋放還原。主程式還能進入到斷點繼續工作。正是這種原理,彙編程式設計時採用的是斷點(也就是中斷)的工作模式。也就是理解好堆疊就更好地理解了中斷。
堆疊區的使用不僅僅如此,由於其原理。可以使用堆疊區進行子程式的引數傳遞。堆疊是一個很重要的內容,但學習它不好理解時建議你先看一下資料結構。會更有利於你的理解!