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