30 likes | 168 Views
6.2 機械語 (1)ハードウェア命令の形式の例. レジスタは 4 ビット表現( 8 個)なお、インデックスレジスタとして R0 は使えない. (2)命令の種類例. コード 例 示 意 味 LOAD A0 LOAD Label,1,2 (X2)+Label のアドレスの内容をレジスタ X1 にロード STOR A2 STOR Label,1,2 レジスタ X1 の内容を (X2)+Label のアドレスに格納
E N D
6.2 機械語(1)ハードウェア命令の形式の例6.2 機械語(1)ハードウェア命令の形式の例 レジスタは4ビット表現(8個)なお、インデックスレジスタとしてR0は使えない
(2)命令の種類例 コード 例 示 意 味 LOAD A0 LOAD Label,1,2 (X2)+Labelのアドレスの内容をレジスタX1にロード STOR A2 STOR Label,1,2 レジスタX1の内容を(X2)+Labelのアドレスに格納 LI B0 LILabel,1,2 (X2)+Labelの値をレジスタX1にロード ADD81 ADD Label,1,2 レジスタX1に(X2)+Labelの内容を加算 SUB 82 SUB Label,1,2 レジスタX1から(X2)+Labelの内容を減算 MULT 83 MULT Label,1,2 レジスタX1に(X2)+Labelの内容を乗算 DIV 84 DIV Label,1,2 レジスタX1を(X2)+Labelの内容で除算 AND88 AND Label,1,2 レジスタX1と(X2)+Labelの内容でAND演算 OR 89 OR Label,1,2 レジスタX1と(X2)+Labelの内容でOR演算 XOR 8A XOR Label,1,2 レジスタX1と(X2)+Labelの内容でXOR演算 EQV 8B EQV Label,1,2 レジスタX1と(X2)+Labelの内容でEQV演算 IMP 8C IMP Label,1,2 レジスタX1と(X2)+Labelの内容でIMP演算 ADDI 91 ADDI Label,1,2 レジスタX1に(X2)+Labelの値を加算 SUBI 92 SUBI Label,1,2 レジスタX1から(X2)+Labelの値を減算 MULTI 93 MULTI Label,1,2 レジスタX1に(X2)+Labelの値を乗算 DIVI 94 DIVI Label,1,2 レジスタX1を(X2)+Labelの値で除算 ANDI 98 ANDI Label,1,2 レジスタX1と(X2)+Labelの値でAND演算 ORI 99 ORI Label,1,2 レジスタX1と(X2)+Labelの値でOR演算 XORI 9A XORI Label,1,2 レジスタX1と(X2)+Labelの値でXOR演算 EQVI 9B EQVI Label,1,2 レジスタX1と(X2)+Labelの値でEQV演算 IMPI 9C JMPI Label,1,2 レジスタX1と(X2)+Labelの値でIMP演算
(2)命令の種類例 コード 例 示 意 味 JMP E0 JMP Label,1,2 (X2)+Labelのアドレスにジャンプ JP E1 JP Label,1,2 現ステータスが正であれば(X2)+Labelのアドレスに ジャンプ JZ E2 JZ Label,1,2 現ステータスが零であれば(X2)+Labelのアドレスに ジャンプ JM E3 JM Label,1,2 現ステータスが負であれば(X2)+Labelのアドレスに ジャンプ OUT 60 OUT 1 レジスタX1を表示 IN 61 IN1 レジスタX1に入力 MOVR 50 MOVR 1,2 レジスタX2の内容をレジスタX1に移す MINUS 21 MINUS 1 レジスタX1の符号を逆転 NOT 28 NOT 1 レジスタX1のNOT SVC 01 SVC 0 スーパバイザCALL (エミュレータではプログラム終了のみサポート) (以下、アセンブラ命令) DC-- DC 5 1ワードの領域を宣言し,その値を5にする DA -- DA 6 6ワードの領域を宣言する (エミュレータでは初期値は0設定される)