トップ 一覧 検索 ヘルプ RSS ログイン

MINICPUの命令セットの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!MINICPUの命令セット

TINYCPUの命令セットに,LDとSTが追加.

, ,ニーモニック,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16進,動作
,1,HALT,0,0,0,0,-,-,-,-,-,-,-,-,-,-,-,0000,停止
,2,PUSHI I,0,0,0,1,I,I,I,I,I,I,I,I,I,I,I,1000+I,即値Iをスタックにプッシュ
,3,PUSH A,0,0,1,0,A,A,A,A,A,A,A,A,A,A,A,2000+A,A番地の値をスタックにプッシュ
,4,POP A,0,0,1,1,A,A,A,A,A,A,A,A,A,A,A,3000+A,スタックトップをA番地に格納
,5,JMP A,0,1,0,0,A,A,A,A,A,A,A,A,A,A,A,4000+A,A番地に分岐
,6,JZ A,0,1,0,1,A,A,A,A,A,A,A,A,A,A,A,5000+A,スタックトップが0ならA番地に分岐
,7,JNZ A,0,1,1,0,A,A,A,A,A,A,A,A,A,A,A,6000+A,スタックトップが0でないならA番地に分岐
,8,LD,0,1,1,1,-,-,-,-,-,-,-,-,-,-,-,7000,スタックトップの値を番地としてメモリから読み出しスタックトップに格納
,9,ST,1,0,0,0,-,-,-,-,-,-,-,-,-,-,-,8000,スタックの2番目の値を番地として,スタックトップの値をメモリに書きこみ
,10,IN,1,1,0,1,-,-,-,-,-,-,-,-,-,-,-,D000,入力ポートの値をスタックにプッシュ
,11,OUT,1,1,1,0,-,-,-,-,-,-,-,-,-,-,-,E000,スタックトップを出力バッファに書き込み
,12,OP f,1,1,1,1,-,-,-,-,-,-,f,f,f,f,f,F000+f,スタック上で演算を行い,結果をスタックトップに格納
, ,ADD,1,1,1,1,-,-,-,-,-,-,0,0,0,0,0,F000,加算
, ,SUB,1,1,1,1,-,-,-,-,-,-,0,0,0,0,1,F001,減算
, ,MUL,1,1,1,1,-,-,-,-,-,-,0,0,0,1,0,F002,乗算
, ,SHL,1,1,1,1,-,-,-,-,-,-,0,0,0,1,1,F003,左シフト
, ,SHR,1,1,1,1,-,-,-,-,-,-,0,0,1,0,0,F004,右シフト
, ,BAND,1,1,1,1,-,-,-,-,-,-,0,0,1,0,1,F005,ビット毎の論理積
, ,BOR,1,1,1,1,-,-,-,-,-,-,0,0,1,1,0,F006,ビット毎の論理和
, ,BXOR,1,1,1,1,-,-,-,-,-,-,0,0,1,1,1,F007,ビット毎の排他的論理和
, ,AND,1,1,1,1,-,-,-,-,-,-,0,1,0,0,0,F008,論理積
, ,OR,1,1,1,1,-,-,-,-,-,-,0,1,0,0,1,F009,論理和
, ,EQ,1,1,1,1,-,-,-,-,-,-,0,1,0,1,0,F00A,等しい
, ,NE,1,1,1,1,-,-,-,-,-,-,0,1,0,1,1,F00B,等しくない
, ,GE,1,1,1,1,-,-,-,-,-,-,0,1,1,0,0,F00C,大きいか等しい
, ,LE,1,1,1,1,-,-,-,-,-,-,0,1,1,0,1,F00D,小さいか等しい
, ,GT,1,1,1,1,-,-,-,-,-,-,0,1,1,1,0,F00E,大きい
, ,LT,1,1,1,1,-,-,-,-,-,-,0,1,1,1,1,F00F,小さい
, ,NEG,1,1,1,1,-,-,-,-,-,-,1,0,0,0,0,F010,符号反転
, ,BNOT,1,1,1,1,-,-,-,-,-,-,1,0,0,0,1,F011,ビット毎の反転
, ,NOT,1,1,1,1,-,-,-,-,-,-,1,0,0,1,0,F012,論理否定

!!オペランド
PUSHI I(即値プッシュ)は,Iを12ビットの2の補数として扱い,16ビットに符号拡張した値をスタックにプッシュする.
PUSH AなどのオペランドAはアドレスを意味し,12ビットの符号なし2進数として扱う.