/*====================================================================== //======================================================================// // 原則15番地を過ぎてプログラム停止 // // reg1, reg2, regZ, regC, MEMx, x // // 結果 カウンタ メモリ番地 数字 // //======================================================================// 0000 0 NOP //何もしない 0001 1 SVCIN x, MEMx //IO端子(x番)の値をメモリ(MEMx番地)に入れる 0010 2 SVCOUT x //regZの値をIO端子(x番)に出力 0011 3 JMP MEMx //メモリ(MEMx番地)の値の命令にジャンプ(=CounterにMEMxを代入) 0100 4 JZ MEMx //regZが0のときにメモリ(MEMx番地)の値の命令にジャンプ 0101 5 HALT //停止 0110 6 WRITE MEMx //regZの値をメモリ(MEMx番地)に代入 0111 7 LOAD REGx, MEMx //メモリ(MEMx番地)の値をレジスタ(REG1かREG2)に代入 1000 8 PRWRT MEMx, x //xをメモリ(MEMx番地)に代入 1001 9 SLL REGx, x //左シフト REGxをxビット左シフトして結果をregZに代入 1010 a SRL REGx, x //右シフト REGxをxビット右シフトして結果をregZに代入 1011 b ADD //REG1とREG2を加算してregZに代入 1100 c SUB //REG1とREG2を減算してregZに代入 1101 d AND //REG1とREG2をAND演算してregZに代入 1110 e OR //REG1とREG2をOR演算してregZに代入 1111 f XOR //REG1とREG2をXOR演算してregZに代入 /*======================================================================*/