x86-64CPU中的寄存器
64位CPU中的寄存器
x86-64CPU中共有16個存儲64位值的通用目的寄存器,這些寄存器用來存儲整數數據和指針。
64位CPU的前8個寄存器是從32位CPU中的%eax到%esp的8個寄存器,從32位擴展爲64位,同時,名稱也變爲了從%rax到%rsp。
另外的8個寄存器是新增的,標號從%r8到%r15。
標號 | 作用 |
---|---|
%rax | 返回值 |
%rbx | 被調用者保存 |
%rcx | 第4個參數 |
%rdx | 第3個參數 |
%rsi | 第2個參數 |
%rdi | 第1個參數 |
%rbp | 被調用者保存 |
%rsp | 棧指針 |
%r8 | 第5個參數 |
%r9 | 第6個參數 |
%r10 | 調用者保存 |
%r11 | 調用者保存 |
%r12 | 被調用者保存 |
%r13 | 被調用者保存 |
%r14 | 被調用者保存 |
%r15 | 被調用者保存 |
32位CPU中的寄存器
Intel的32位CPU中的8個寄存器是從8086的16位CPU中的8個16位寄存器擴展而來的,寄存器標號從%ax到%sp變爲%eax到%esp。
標號 | 作用 |
---|---|
%eax | 返回值 |
%ebx | 被調用者保存 |
%ecx | 第4個參數 |
%edx | 第3個參數 |
%esi | 第2個參數 |
%edi | 第1個參數 |
%ebp | 被調用者保存 |
%esp | 棧指針 |
16位CPU中的寄存器
Intel的16位CPU中有8個16位通用寄存器
標號 | 作用 |
---|---|
%ax | 返回值 |
%bx | 被調用者保存 |
%cx | 第4個參數 |
%dx | 第3個參數 |
%si | 第2個參數 |
%di | 第1個參數 |
%bp | 被調用者保存 |
%sp | 棧指針 |
8位CPU中的寄存器
Intel的8位CPU中8個8位通用寄存器如下所示:
標號 | 作用 |
---|---|
%al | 返回值 |
%bl | 被調用者保存 |
%cl | 第4個參數 |
%dl | 第3個參數 |
%sil | 第2個參數 |
%dil | 第1個參數 |
%bpl | 被調用者保存 |
%spl | 棧指針 |