程序的機器級表示 -- 訪問信息(三)

《深入理解計算機系統(第三版)》閱讀隨筆

壓入和彈出棧數據

棧是一種數據結構,遵循“先進先出”原則。按照慣例,棧頂一般放在底部,棧向低地址方向增長,因此壓棧是減小棧指針值,並將數據存在放在內存中,而出棧是從內存中讀取數據,並且增加棧指針的值。

將一個四字值壓入棧中,相當於先將棧指針減八,然後將值寫入到新的棧頂地址,即分別使用 subq 和 movq 指令,共消耗八個字節,而如果使用入棧指令 pushq,只需一個字節即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章