x86-64中的寄存器

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 棧指針
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章