汎用的に使用されるレジスタ。

汎用 Registerの構成(EAX Registers)
32bit | 16bit | 8bit(High) | 8bit(low) | 機能 |
---|---|---|---|---|
EAX | AX | AH | AL | Accumulator |
EBX | BX | BH | BL | Base |
ECX | CX | CH | CL | Counter |
EDX | DX | DH | DL | Data |
汎用的に使用されるレジスタ。
32bit | 16bit | 8bit(High) | 8bit(low) | 機能 |
---|---|---|---|---|
EAX | AX | AH | AL | Accumulator |
EBX | BX | BH | BL | Base |
ECX | CX | CH | CL | Counter |
EDX | DX | DH | DL | Data |
Segmentを指し示すレジスタ。
16bit | 機能 |
---|---|
CS | Code Segment 実行コード領域のセグメントを示す |
DS | Data Segment データ領域セグメントを示す |
SS | Stack Segment スタック領域のセグメントを示す |
ES | Extra Segment それ以外のセグメントを示す |
FS | 汎用? (386以降から登場) |
GS | 汎用? (386以降から登場) |
インデックス レジスター
32bit | 16bit | 機能 |
---|---|---|
ESI | SI | Source Index |
EDI | DI | Destination Index |
EIP | IP | Instruction Pointer |
スタック レジスタ
32bit | 16bit | 機能 |
---|---|---|
ESP | SP | Stack Pointer |
EBP | BP | Base Pointer |
命令実行の結果などがセットされるレジスタ。
bit | FLAG | 意味 | 詳細 |
---|---|---|---|
0 | CF | Carry Flag |
算術演算の結果、carry(桁上がり)または、borrow(桁下がり)が発生した時、
1がセットされる。 符合無し演算のoverflowの発生を示す。 |
1 | - | 1固定 | |
2 | PF | Parity Flag | 算術演算の結果が、偶数ならば1がセットされる。 |
3 | - | 0固定 | |
4 | AF | Auxiliary Flag |
下位4bitから上位4bitへの桁上げが生じた時、1がセットされる。 2進化10進数演算を行う場合等に用いられる。 |
5 | - | 0固定 | |
6 | ZF | Zero Flag | 演算結果が0の時、1がセットされる。 |
7 | SF | Sign Flag | 演算結果のMSB(最上位bit)が1の時、1がセットされる。 |
8 | TF | Trap Flag | Debug用フラグ、1の時Single Step Modeが有効になり、 0の時Single Step Modeが無効となる。 |
9 | IF | Interrupt Flag | マスク可能HW割込み制御フラグ。1のとき割込み許可となり0の時割り込み禁止 |
10 | DF | Direction Flag | ストリング命令の、参照方向を制御するフラグ。 1の時は、マイナス方向を参照し、0の時は、プラス方向を参照する。 |
11 | OF | Overflow flag | 計算結果がOverflowおよびunderflowした時、1がセットされる。 |
12-13 | IOPL | I/O Privilege Level(286以降) | 現在実行している、プログラムのI/O特権レベルを表す。 |
14 | NT | Nested Task Flag(286以降) | プロセッサは、CALL命令、割り込み、または例外によって 開始されたタスクへのコール時にこのフラグをセットする。 |
15 | - | 0固定 | |
16 | RF | Resume Flag(386以降) | 命令ブレークポイント条件に対するプロセッサの応答を制御する。 1の時は、命令ブレークポイントに対して一時的にデバッグ例外 が生成されないようになる。 |
17 | VM | Virtual Mode Flag (386以降) |
仮想8086モードを制御する。 VM=1の時は、仮想8086モードとなる。 VM=0の時は、プロテクトモードとなる。 |
18 | AC | Alignment Check | このフラグとCR0 レジスタのAM フラグがセットされると、 メモリ参照のアライメント・チェックがイネーブルになる。 ACフラグまたはAMフラグ、あるいはその両方がクリアされると、 アライメント・チェックがディスエーブルになる。 奇数バイト・アドレスにあるワードや4 の整数倍でないアドレス にあるダブルワードなどアライメントの合っていないオペランド が参照されると、アライメント・チェック例外が発生する。 |
19 | VIF | Virtual Interrupt Flag | よくわからん |
20 | VIP | Virtual Interrupt Pending | よくわからん |
21 | ID | ID | このフラグをセットまたはクリアすることができるプログラムまた はプロシージャの機能は、CPUID 命令をサポートする。 |
22-31 | - | Reserved(0固定) |
プロセッサの動作モードと状態を制御するシステム制御フラグで構成される。
bit | FLAG | 意味 | 詳細 |
---|---|---|---|
0 | PE | Protect Enable |
PE=1の時、保護モードがEnableになる。 PE=0の時、実アドレスモードがEnableになる。 |
1 | MP | Monitor Coprocesser |
WAIT(またはFWAIT)命令とTSフラグ(CR0のビット3)との相互作用を制御する。 MP=1かつTS=1の時、wait命令はデバイス使用不可能例外(#NM)を生成する。 MP=0の場合、WAIT 命令はTSフラグの設定を無視する。 |
2 | EM | Emulation |
EM=1の時は、プロセッサは内部または外部のFPUを持っていないことを表す。 EM=0の時は、FPUが存在することを表す。 EM=1の時、浮動小数点命令を実行実行すると、デバイス使用不可能例外(#NM) が発生する。 |
3 | TS | Task Switch |
FPUが新しいタスクによって実際にアクセスされるまで、
Task Switch時のFPUコンテキストのセーブを遅延させることができる。 TS=1の場合、浮動小数点命令の実行前に、デバイス使用不可能例外(#NM) が発生する。 TS=1かつMP=1の場合、浮動小数点命令またはWAIT/FWAIT命令の実行前に、#NM 例外が発生する。 |
4 | ET | Extension Type? |
P6ファミリ・プロセッサとPentiumプロセッサではReservedとなる。
(P6 ファミリ・プロセッサでは、このフラグは1 に固定されている。) 386プロセッサと486プロセッサでは、このフラグがセットされていると 387DX数値演算コプロセッサ命令のサポートを示す。 |
5 | NE | Numerical Error? |
NE=1の時は、FPUエラーをレポートするための標準メカニズムがEnableになる。 NE=0の時は、PC スタイルのFPUエラー・レポート・メカニズムがEnableになる。 |
16 | WP | Write Protect |
WP=1の時は、スーパバイザ・レベルのプロシージャがユーザ・レベル読み取り
専用ページに書き込むことを禁止する。 WP=0の時は、スーパバイザ・レベルのプロシージャがユーザ・レベル読み取り専用 ページに書き込むことを許可する。 このフラグは、UNIX などのオペレーティング・システムによって使用され、 コピー・オン・ライト方式による新しいプロセスを生成する場合に (フォークする)設計を容易にする。 |
18 | AM | Alignment Mask |
AW=1の時は、自動Alignment CheckがEnable。 AW=0の時は、Alignment Checkがdisable。 Alignment Checkは、AM=0・AC=0(EFLAGS)・CPL=3であり、 プロセッサが保護モードまたは仮想8086 モードで動作しているときだけ に実行される。 |
29 | NW | Now Write through | NWフラグとCDフラグがクリアされると、キャッシュをヒットする書き込みに対して ライトバック(PentiumRプロセッサとP6ファミリ・プロセッサの場合)または ライトスルー(Intel486. プロセッサの場合)がEnableになり、無効化サイクルがEnableになる。 |
30 | CD | Cache Disable | CD=0・NW=0の時、プロセッサの内部(および外部)キャッシュにある物理メモリ全体のメモリ位 置のキャッシングがEnableになる。 |
31 | PG | Paging |
PG=1の時、PagingがEnableになる。 PG=0の時、PagingがDisableになる。 PagingがDisableになっていると、すべてのリニア・アドレスは物理アドレスとして扱われ る。PE=0の場合、PGフラグは効力を持たない。 |
cr1 Registersは全てReserved。
cr2には、ページ・フォルトを発生させた命令が、アクセスしようとしたメモリのリニア・アドレスが設定される。
ページ・ディレクトリのベースの物理アドレスと2つのフラグ(PCD とPWT)が入る。
bit | FLAG | 意味 | 詳細 |
---|---|---|---|
3 | PE | Page Write Through |
現在のページ・ディレクトリのライトスルーまたは
ライトバック・キャッシング・ポリシーを制御する。 PWT=1の時、ライトスルー・キャッシングがEnableになる。 PWT=0の時、ライトバック・キャッシングがEnableになる。 このフラグは、内部キャッシュ(存在しているときは、L1とL2の両方)だけに影響を与える。 ページングが使用されていない(PG=0[レジスタCR0])かまたはキャッシュ・ディスエーブルフラグ (CD=1[レジスタCR0])の場合、プロセッサはこのフラグを無視する。 |
4 | PCD | Page level Cache Disable |
現在のページ・ディレクトリのキャッシングを制御する。 PCD=1の時、ページ・ディレクトリのキャッシングが抑制される。 PCD=0の時、ページ・ディレクトリをキャッシュすることができる。 このフラグは、プロセッサの内部キャッシュ(存在しているときには、L1およびL2の両方) だけに影響を与える。ページングが使用されていない(PG=0[レジスタCR0])または キャッシュ・ディスエーブル・フラグ(CD=1[レジスタCR0])の場合、 プロセッサはこのフラグを無視する。 |
12-31 | - | Page Directory Base | ページング機能をONにする前に、Page Directory Tableアドレスの上位20bitを セットする。 |
アーキテクチャ上の各種の拡張機能を設定する。
bit | FLAG | 意味 | 詳細 |
---|---|---|---|
0 | VME | 仮想8086 モード拡張 |
VME=1の時、仮想8086モードでの割り込み/例外処理拡張がEnable。 VME=0の時、拡張がDisable。 |
1 | PVI | 保護モード仮想割り込み | PVI=1の時、保護モードで仮想割り込みフラグ(VIF)のハードウェア・サポートがEnableになる。 PVI=0の時、保護モードでVIF フラグがDisableになる。 |
2 | TSD | タイムスタンプ・ディスエーブル |
TSD=1の時、RDTSC命令が特権レベル0で実行しているプロシージャだけで実行されるように限定される。 TSD=0の時、RDTSC命令がどの特権レベルでも実行できるようになる。 |
3 | DE | デバッグ拡張 |
DE=1の時、デバッグ・レジスタDR4 DR5への参照によって未定義オペコード(#UD)例外が生成される。 DE=0の時、早期のインテル・アーキテクチャ・プロセッサで実行するように作成されている ソフトウェアとの互換性を保つ、 |
4 | PSE | ページ・サイズ拡張 |
PSE=1の時、4Mバイト・ページがEnableになる。 PSE=0の時、4Kバイト・ページに制限される。 |
5 | PAE | 物理アドレス拡張 |
PAE=1の時、36ビット物理アドレスを参照するページング・メカニズムがEnableになる。 PAE=0の時、物理アドレスは32 ビットに限定される。 |
6 | MCE | マシン・チェック・イネーブル | MCE=1の時、マシン・チェック例外がEnableになる。 MCE=0の時、マシン・チェック例外がDisableになる。 |
7 | PGE | ページ・グローバル・イネーブル |
PGE=1の時、グローバル・ページ機能がEnableになる。 PGE=0の時、グローバル・ページ機能がDisableになる。 (P6 ファミリ・プロセッサで導入された。) |
8 | PCE | 性能モニタリング・カウンタ・イネーブル |
PCE=1の時、任意の保護レベルで実行しているプログラムまたはプロシージャに対し
てRDPMC 命令を実行することができる。 PCE=0の時、クリアされていると、RDPMC 命令は保護レベル0でしか実行することはできない。 |
9 | OSFXSR | OSによるFXSAVE/FXRSTORのサポート | CPU とOS がいずれもコンテキスト・スイッチ時のFXSAVE/FXRSTOR の使用をサポー トしている場合は、オペレーティング・システムはこのビットをセットする。 |
10 | OSXNNEXCPT | OSによるFMaskされていない例外のサポート | オペレーティング・システムが、マスクされていないSIMD 浮動小数点例外をサ ポートしている場合は、オペレーティング・システムはこのビットをセットする。 |