Intel寄存器名稱解釋及用途,%eax%ebx等都是什么意思


參考資料:https://www.swansontec.com/sregisters.html x86家族的CPU都有8個通用寄存器,每一個寄存器的名字都是一組單詞的縮寫。就連這四個分別叫做%eax,%ebx,%ecx,%edx的寄存器,盡管看似是隨意按照abcd的字母排序的,其實這a,b,c,d也分別是四個單詞的縮寫。 %——百分號表示這是一個寄存器。 末尾的x或許是register的縮寫?(這句是我猜的) e表示extend 意思是擴展到了32位。因為以前的intel寄存器都是16位的,它們的名字就是%ax,%bx等等,所以擴展到32位之后就在開頭加上一個e,改名叫%eax,%ebx等

1. EAX - Accumulator Register(累加器)

當你寫一個函數,最后返回一個值x(return x),那么這個x就要被存到%eax. 當你要把一個數字擴展成64位,那么%eax存這個數的低32位,%edx存這個數的高32位。

2. EBX - Base Register(基地址寄存器)

在所有的通用寄存器里,EBX是唯一一個沒有什么重要的專門用途的寄存器,你可以用它存一個計算過程中的中間變量,或者一個指針等等。

3. ECX - Counter Register(計數寄存器)

在x86中,ecx就是那個程序中無處不在的計數變量i,x86中每一個計數相關的指令都要用到ecx。

4. EDX - Data Register(數據寄存器)

在除了累加器之外的其余七個通用寄存器里,edx與累加器的聯系最為緊密。(當你要把一個數字擴展成64位,那么%eax存這個數的低32位,%edx存這個數的高32位。) 后面四個,大家可以看文章開頭的資料,我就懶得翻譯了。

5. ESI - Source Index
6. EDI - Destination Index
7. EBP - Base Pointer
8. ESP - Stack Pointer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM