はじめに
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