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

TINYCPUの命令セットの変更点

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

, ,ニーモニック,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,IN,1,1,0,1,-,-,-,-,-,-,-,-,-,-,-,D000,入力ポートの値をスタックにプッシュ
,9,OUT,1,1,1,0,-,-,-,-,-,-,-,-,-,-,-,E000
,10,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
,9,OUT,1,1,1,0,-,-,-,-,-,-,-,-,-,-,-,E000,スタックトップを出力バッファに書き込み
,10,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進数として扱う.