16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

DAA—Decimal Adjust AL after Addition<br />

オペコード 命令 説明<br />

27 DAA 加算後に AL を 10 進調整する。<br />

説明<br />

2 つのパ ッ ク BCD 値の和を調整して、 パ ッ ク BCD 結果を作成す る。 AL レジスタは、 こ<br />

の命令の暗黙のソース兼デスティネーション ・ オペランドである。 DAA 命令は、 2 桁の<br />

パック BCD 値を加算 (2 進加算 ) し、 バイ ト 結果を AL レジスタにストアする ADD 命令<br />

の次に実行した と き に限 り 有効である。 そ こ で、 DAA 命令が AL レジスタの内容を調整<br />

して、 正しい 2 桁のパ ッ ク BCD 結果に ま と め る。 10 進キ ャ リ ーが検出された場合は、<br />

キャリーに従ってCF および AF フラグがセット される。<br />

操作<br />

IF (((AL AND 0FH) > 9) or AF = 1)<br />

THEN<br />

AL ← AL + 6;<br />

CF ← CF OR CarryFromLastAddition; (* CF OR carry from AL ← AL + 6 *)<br />

AF ← 1;<br />

ELSE<br />

AF ← 0;<br />

FI;<br />

IF ((AL AND F0H) > 90H) or CF = 1)<br />

THEN<br />

AL ← AL + 60H;<br />

CF ← 1;<br />

ELSE<br />

CF ← 0;<br />

FI;<br />

例<br />

ADD AL, BL Before: AL=79H BL=35H EFLAGS(OSZAPC)=XXXXXX<br />

After: AL=AEH BL=35H EFLAGS(0SZAPC)=110000<br />

DAA Before: AL=79H BL=35H EFLAGS(OSZAPC)=110000<br />

After: AL=AEH BL=35H EFLAGS(0SZAPC)=X00111<br />

影響を受けるフラグ<br />

値の調整に よ っ て結果の ど ち ら かの桁に 10 進キ ャ リ ーが生じた場合は、 CF および AF<br />

フラグがセッ ト される ( 上記の 「操作」 を参照 )。 SF、 ZF、 PF フラグが結果に従って<br />

セッ ト される。 OF フ ラ グは未定義。<br />

追加の Itanium ベース・システム環境例外<br />

Itanium アーキテクチャ ・<br />

レジスタ ・ フォルト<br />

例外 ( すべての操作モード )<br />

なし。<br />

NaT レ ジ ス タ参照アボ ー ト 。<br />

第 3 巻 : IA-32 基本命令リファレンス 3:447

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!