2オペランド命令
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/26 17:01 UTC 版)
命令の先頭4ビットが命令コードである(特にビット15でワードアドレッシングかバイトアドレッシングかを示す)。6ビットで1オペランドとなっており、2オペランドある。オペランドの内容については上述のアドレッシングモードを参照。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 opcode mode source mode destination 命令コードニーモニック説明01 MOV 転送: dest = src 11 MOVB 02 CMP 比較: src − dest を計算し、フラグだけセットする。 12 CMPB 03 BIT ビットテスト: dest & src を計算し、フラグだけをセットする。 13 BITB 04 BIC ビットクリア: dest &= ~src 14 BICB 05 BIS ビットセット(論理和): dest |= src 15 BISB 06 ADD 加算: dest += src 16 SUB 減算: dest −= src ADD命令とSUB命令はワードアドレッシングであり、バイトを対象とするバージョンは存在しない。 一部の2オペランド命令は、一方のオペランドにレジスタしか指定できない。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 opcode register mode source/destination ここで、レジスタペアが使われる。「(R,R+1)」のように記述し、Rレジスタが上位ワードであって偶数番目でなければならない。2つ目のレジスタは下位ワード(または余り)である。乗算ではRが奇数番目のレジスタであってもよいが、その場合の積の上位ワードはレジスタに保持されない。 命令コードニーモニック説明070 MUL 乗算: (R,R+1) = R × src 071 DIV 除算: (R,R+1) ÷ src を計算。商を R、余りを R+1 へ 072 ASH 算術シフト: R <<= src を行う。シフトするビット数は −32 から 31 まで指定可能。 073 ASHC 連鎖算術シフト: (R,R+1) <<= src を行い、シフトするビット数は −32 から 31 まで指定可能 074 XOR 排他的論理和: dest ^= reg (ワードのみ) 075 (浮動小数点演算) 076 (システム命令) 077 SOB デクリメントし、分岐: レジスタをデクリメントし、結果がゼロでない場合はPC相対で後方へ分岐する。分岐できる範囲は 0 から 63 ワードまで。
※この「2オペランド命令」の解説は、「PDP-11」の解説の一部です。
「2オペランド命令」を含む「PDP-11」の記事については、「PDP-11」の概要を参照ください。
- 2オペランド命令のページへのリンク