はじめに
OSの勉強をする際に、レジスタ関係の項目が忘れそうなので備忘録を作成しました。
参考文献
x86レジスタ
32bitのレジスタ長を持つ
レジスタ | 名前 | 備考 |
---|---|---|
汎用レジスタ | ||
EAX | アキュムレータレジスタ | 演算結果を格納 |
ECX | カウンタレジスタ | ループの回数などのカウントを格納 |
EDX | データレジスタ | 演算に用いるデータを格納 |
EBX | ベースレジスタ | アドレスの基点を格納 |
ESI | ソースインデックスレジスタ(インデックスレジスタ) | 読み込みインデックス |
EDI | デスティネーションインデックスレジスタ(インデックスレジスタ) | 書き込みインデックス |
特殊レジスタ | ||
EBP | ベースポインタレジスタ | ベース用ポインタ |
ESP | スタックポインタレジスタ | スタック用ポインタ |
EIP | インストラクションポインタレジスタ | 次に実行するアセンブリ命令のアドレスを格納 |
フラグレジスタ | ||
EFLAGS | ||
セグメントレジスタ | ||
CS | ||
DS | ||
SS | ||
ES | ||
FS | ||
GS |
汎用レジスタ
上記であげた汎用レジスタのうちEAX, ECX, EDX, EBXは下位16bitにそれぞれAX,CX,DX,BXレジスタを持つ。さらに、AX,CX,DX,BXレジスタは上位8bitと下位8bitに分割される。
- EAX
- AX: 下位16bit
- AH: 上位8bit
- AL: 下位8bit
- AX: 下位16bit
- ECX
- CX: 下位16bit
- CH: 上位8bit
- CL: 下位8bit
- CX: 下位16bit
- EDX
- DX: 下位16bit
- DH: 上位8bit
- DL: 下位8bit
- DX: 下位16bit
- EBX
- BX: 下位16bit
- BH: 上位8bit
- BL: 下位8bit
- BX: 下位16bit
インデックスレジスタ
汎用レジスタに分類されているESIとEDIはまとめてインデックスレジスタとも呼ばれる。インデックスレジスタの下位16bitはそれぞれSI,DIレジスタと呼ばれる。
- ESI
- SI: 下位16bit
- EDI
- DI: 下位16bit