トップ 差分 一覧 ソース 検索 ヘルプ PDF 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 論理否定

オペランド

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

最終更新時間:2007年08月28日 22時31分49秒