在計算機系統中,棧起到了什麼作用?

2021-10-03 09:34:28 字數 587 閱讀 9322

函式的返回位址和引數。

臨時變數:包括函式的非靜態區域性變數以及編譯器自動生成的其他臨時變數

引數傳遞

函式裡面也有可能要使用到區域性變數,而不能總是用全域性變數。則區域性變數儲存到**合適,即不能讓函式巢狀的時候有衝突,又要注重效率。

暫存器傳參的衝突,可以把暫存器的值臨時壓入棧裡面,非暫存器傳參也可以壓入到棧裡面。

區域性變數的使用也可以利用棧裡面的記憶體空間,只需要移動下棧指標,騰出區域性變數占用的空間。最後利用棧指標的偏移來完成訪問。於是函式的這些引數和變數的儲存演變成記住乙個棧指標的位址,每次函式被呼叫的時候,都配套乙個棧指標位址,即使迴圈巢狀呼叫函式,只要對應函式棧指標是不同的,也不會出現衝突。

利用棧,當函式不斷呼叫的時候,不斷的有引數區域性變數入棧,棧裡面會形成乙個函式棧幀的結構,乙個棧幀結構歸屬於一次函式的呼叫。棧的空間也是有限的,如果不限制的使用,就會出現典型的棧溢位的問題。有了棧幀的框架在,我們在分析問題的時候,如果能獲取到當時的棧的內容,則有機會調查當時可能出現的問題。

棧是每個函式架構的基礎,實現了函式的重複利用。

問題發生的時候,可以利用棧來了解問題發生的情況。

棧是構建出作業系統多工模式的基礎。

計算機系統基礎摘記 整數在計算機中的表示

2 整數在計算機中的表示 參考文獻 計算機是使用二進位制來表示資訊,因為對於電路來說,表示1和0兩個狀態是非常容易實現的。若要使用二進位制來表示數值,則需要規定二進位制對數值進行編碼的規則,不同編碼規則下,同一串二進位制表示的數值可能不同。下面介紹幾種常見的整數編碼方式。原碼最容易理解,對於有符號數...

計算機系統中的整數運算

計算機系統內的整數運算的侷限 表示整數的二進位制位是一定的,所以表示的整數的範圍是侷限的。整數 運算實際上是一種模運算 表示數字的有限字長限制了可能的取值範圍,結果運算可能溢位,所以運算結果都是取模之後的。無符號加法 乙個算術運算溢位,是指完整的整數結果不能放到資料型別的字長限制中去。c語言中真正執...

計算機系統中幾個週期的區別

計算機系統中幾個週期的區別 微指令與機器指令關係 小磊oye 時鐘週期,一般也稱振盪週期 如果晶振的輸出沒有經過分頻就直接作為cpu的工作時鐘,則時鐘週期就等於振盪週期 通常成為節拍脈衝或者t週期,它是cpu處理操作的最基本單位。機器週期,一般也成為cpu週期,由於cpu的內部操作很快,而cpu訪問...