OSECPUの仮想CPUの命令セット
ver.0.00
- 00: NOP
- 02: LOADINT Rxx, imm32
- 06: COPYINT Rxx, Rxx
- 14: ADDINT Rxx, Rxx, Rxx
ver.0.01
- 01: LABEL imm32
- 03: LOADLBL Pxx, imm32
- 04: COND Rxx : プリフィクス regのbit0の値で修飾された命令を実行するかどうか決める
- 05: CONDN Rxx
- 21: COMPNE reg, reg, reg : A = (B != C) ? -1 : 0
ver.0.2以降
- 22: COMPL
- 23: COMPG
- 24: COMPLE
- 25: COMPGE
- 26: TESTZ
- 27: TESTNZ
ver.0.3以降
- 10:OR, XOR, AND, ?,
- 14:(ADD), SUB, MUL, ?,
- 18:SHL, SAR, DIV, MOD
特別なレジスタ
- R30~R3E : 定数が入っていることが期待される。これらのレジスタに対して演算命令で結果を格納することはできない。
- R3F : COMPcc命令の際に結果を格納することだけできるレジスタ。もちろんCOMPcc命令では、R00~R2Fに結果を入れることもできる。
- COMPcc(R3F,R??,R??); COND(R3F); LOADLBL(P00, ????????); という慣用句で使う。
- R3Fは他の使い方を許されていない。実際にはR3Fに値は格納されていない場合もある(JITの仕様による)。
- P00 : プログラムカウンタ
- P01 : スタックフレームのポインタ
こめんと欄
- このページにこめんと欄はありません。このページの内容にコメントしたいときはimpressionsにお願いします。