3.6 棧
* 棧是一種具有特殊的訪問方式的存儲(chǔ)空間,他的特殊性就在于 最后一個(gè)進(jìn)入這個(gè)空間的數(shù)據(jù),是最先出去的
*
棧有兩種基本的操作:入棧和出棧
*
* 入棧:將一個(gè)新的元素放到棧頂
* 出棧:從棧頂取出一個(gè)元素
* 棧頂元素總是最后一個(gè)入棧的,需要出的時(shí)候,又會(huì)是第一個(gè)被取出的
*
操作規(guī)則:LIFO
* (Last in first out) 后進(jìn)先出
3.7 CPU提供的棧機(jī)制
* 現(xiàn)今的CPU都有棧的設(shè)計(jì), CPU提供相關(guān)的指令來以棧的方式訪問內(nèi)存空間
*
這就意味著,我們?cè)貱PU編程的時(shí)候,可將一段內(nèi)存當(dāng)做棧來使用
push(入棧):
* push ax: 將寄存器ax中的數(shù)據(jù)送入棧中
pop(出棧):
* pop ax:從棧頂取出數(shù)據(jù)送入ax中
入棧和出棧的操作都是以 字 為單位進(jìn)行的
* 字型數(shù)據(jù)用兩個(gè)單元存放,高地址單元放高8位,低地址單元房地8位
*
1. CPU如何知道一段內(nèi)存空間被當(dāng)做棧使用?
熱門工具 換一換