インテルのみ表示可能 — GUID: iga1409765306274
Ixiasoft
インテルのみ表示可能 — GUID: iga1409765306274
Ixiasoft
8.5.1. add
命令 | 加算 (add) |
演算 | rC ← rA + rB |
アセンブラー構文 | add rC, rA, rB |
例 | add r6, r7, r8 |
説明 | rA の値と rB の値を加算し、結果を rC に格納する。符号付き加算と符号なし加算の両方に使用される。 |
使用法 | キャリー検出 ( 符号なしオペランド ): add演算に続いて、符号なしの合計が符号なしのオペランドの 1 つ未満であるかどうかをチェックすることで、MSB のキャリーアウトの検出が可能。キャリービットはレジスターに書き込みが可能、またはキャリー条件に基づいて条件分岐の実行が可能。次のコードで両方の場合を示す。 add rC, rA, rB cmpltu rD, rC, rA add rC, rA, rB bltu rC, rA, label # The original add operation # rD is written with the carry bit # The original add operation # Branch if carry generated オーバーフロー検出 ( 符号付きオペランド ) : オーバーフローは、2 つの正の加算後の合計が負の場合、または 2 つの負の加算後の合計が正の場合に検出される。オーバーフロー条件は、次のコードに示すように条件分岐が制御できる。 add rC, rA, rB xor rD, rC, rA xor rE, rC, rB and rD, rD, rE blt rD, r0,label # The original add operation # Compare signs of sum and rA # Compare signs of sum and rB # Combine comparisons # Branch if overflow occurred |
例外 | なし |
命令型 | R |
命令フィールド | A = オペランド rA のレジスター・インデックス B = オペランド rB のレジスター・インデックス C = オペランド rC のレジスター・インデックス |
ビットフィールド | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
A | B | C | 0x31 | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0x31 | 0 | 0x3A |