レジスタ

「レジスタ」の編集履歴(バックアップ)一覧に戻る

レジスタ - (2009/08/25 (火) 01:33:32) のソース

&bold(){汎用レジスタ}

|AX|accumulator register|データの一時記憶、各種演算|
|BX|base address register|特定のメモリを指定するポインタ|
|CX|count register|繰り返し処理命令の回数を数えるカウンタ|
|DX|data register|データの一時記憶。AXと組み合わせて剰余算|

AH-AL, BH-BL, CH-CL, DH-DL

&bold(){セグメントレジスタ}
|CS|Code Segment|命令コードのあるセグメントアドレスを保存|
|DS|Data Segment|データのあるセグメントアドレスを保存|
|ES|Extra Segment|第2のデータセグメントアドレスを保存|
|SS|Stack Segment|スタックセグメントアドレスを保存|

※8ビット以下のCPUやセグメントを使わない設計のCPUには、セグメントレジスタはない

&bold(){特殊目的}
|SI|Source Index|メモリを指すポインタ|
|DI|Destination Index|メモリを指すポインタ|
|BP|Base Pointer|プログラムスタックを管理するポインタ|
|SP|Stack Pointer| スタックセグメントで使うベースポインタ |
|IP|Instruction Pointer|次に実行する命令のオフセットアドレスを保存|

使用例:
BP, プロシージャの中で、パラメートとローカル変数にアクセス
SI, DI SIを転送元アドレス、DIを転送先アドレスとして、間接的にメモリにアクセスしたりする

&bold(){フラグレジスタ}
|OF|Overflow Flag|符号付き演算で桁あふれが生じるとセットされる|
|DF|Direction Flag|ストリング操作命令でポインタの増減を表す|
|IF|Interrupt Flag|リセットすると外部割り込みを受け付けなくなる|
|TF|Trace Flag|トレースで実行するときのフラグ|
|SF|Sign Flag|演算結果が負になるとセットされる|
|ZF|Zero Flag|演算結果がゼロになるか、比較で一致するとセットされる|
|AF|Auxiliacy Carry Flag|補助キャリーフラグ(BCD演算で使用)|
|PF|Parity Flag|演算の結果、1となるビットが偶数個のときセット、奇数個ならリセット|
|CF|Carry Flag|演算の結果、桁上がりが生じるとセットされる|
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。