- 深度探索Go語言:對象模型與runtime的原理特性及應(yīng)用
- 封幼林編著
- 242字
- 2023-08-10 16:55:35
1.2.3 入棧和出棧指令
1.1節(jié)在介紹通用寄存器的時候,提到過ESP寄存器有特殊用途,被CPU用作棧指針。x86的一些指令雖然不直接以ESP為操作數(shù),但是會隱式地修改ESP的值,例如入棧和出棧指令。
入棧指令PUSH只有一個操作數(shù),即要入棧的源操作數(shù)。PUSH指令會先將ESP向下移動一個位置,然后把源操作數(shù)復制到ESP指向的內(nèi)存處,代碼如下:

等價于:

最后這個MOV指令把ESP用作基址進行尋址。
出棧指令POP也只有一個操作數(shù),是用來接收數(shù)據(jù)的目的操作數(shù)。POP指令會先把ESP指向的內(nèi)存處的值復制到目的操作數(shù)中,然后把ESP向上移動一個位置,代碼如下:

等價于:

推薦閱讀
- Java Web開發(fā)學習手冊
- 編程的修煉
- Production Ready OpenStack:Recipes for Successful Environments
- 網(wǎng)站構(gòu)建技術(shù)
- 大學計算機基礎(chǔ)實驗指導
- Terraform:多云、混合云環(huán)境下實現(xiàn)基礎(chǔ)設(shè)施即代碼(第2版)
- Learning YARN
- Building Dynamics CRM 2015 Dashboards with Power BI
- Mastering HTML5 Forms
- 從零學Java設(shè)計模式
- 零基礎(chǔ)學C++(升級版)
- Monitoring Docker
- Qt 5.12實戰(zhàn)
- HTML5程序設(shè)計基礎(chǔ)教程
- Flink原理深入與編程實戰(zhàn):Scala+Java(微課視頻版)