いしな.net

YCIX仕様

中間コード

定義が無いと何もできない!
ので、基本的なところから行きます。
コードニーモニック書式説明
00NOPNOP何もしない
01CALLCALL functionID関数/メソッドの呼び出し
07RETRET関数/メソッドから戻る
10GOTOGOTO label指定したアドレスに制御を移行する
11JZJS labelゼロフラグが1のとき(=)、指定したアドレスに制御を移行する
12JNZJNS labelゼロフラグが0のとき(≠)、指定したアドレスに制御を移行する
13JSJS labelサインフラグが1のとき(負)、指定したアドレスに制御を移行する
14JNSJNS labelサインフラグが0のとき(正またはゼロ)、指定したアドレスに制御を移行する
15JOJS labelオーバーフローフラグが1のとき、指定したアドレスに制御を移行する
16JNOJNS labelオーバーフローフラグが0のとき、指定したアドレスに制御を移行する
17JBJB labelキャリーフラグが1のとき(符号なし<)、指定したアドレスに制御を移行する
18JAEJAE labelキャリーフラグが0のとき(符号なし≧)、指定したアドレスに制御を移行する
19JBEJBE labelキャリーフラグが1またはゼロフラグが1のとき(符号なし≦)、指定したアドレスに制御を移行する
1AJAJA labelキャリーフラグが0かつゼロフラグが0のとき(符号なし>)、指定したアドレスに制御を移行する
1BJGEJGE labelオーバーフローフラグ=サインフラグのとき(符号あり≧)、指定したアドレスに制御を移行する
1CJLJL labelオーバーフローフラグ≠サインフラグのとき(符号なし<)、指定したアドレスに制御を移行する
1DJGJG labelオーバーフローフラグ=サインフラグかつゼロフラグが0のとき(符号なし>)、指定したアドレスに制御を移行する
1EJLEJLE labelオーバーフローフラグ≠サインフラグかつゼロフラグが1のとき(符号なし≦)、指定したアドレスに制御を移行する
20CMPCMP1スタックの1つ目からスタックの2つ目を比較した結果をフラグに反映する
21CMP2
22CMP4
23CMP8
24CMP imm8スタックの1つ目から指定した値を比較した結果をフラグに反映する
25CMP imm16
26CMP imm32
27CMP imm64
4CPOPPOP mem8スタックから値を取り出す
4DPOP mem16
4EPOP mem32
4FPOP mem64
50PUSHPUSH imm8スタックに値をプッシュする
51PUSH imm16
52PUSH imm32
53PUSH imm64
54PUSH mem8スタックに指定したアドレスのメモリ値をプッシュする
55PUSH mem16
56PUSH mem32
57PUSH mem64
70NOTNOT1スタックトップの値をビット反転する
71NOT2
72NOT4
73NOT8
78NEGNEG1スタックトップの値の正負を反転する。値が0または負数最小の場合変化しない
79NEG2
7ANEG4
7BNEG8
8000ADDADD1スタックから値を2つポップして、加算した結果をプッシュする
8001ADD2
8002ADD4
8003ADD8
8010SUBSUB1スタックの1つ目からスタックの2つ目を減算した結果をプッシュする
8011SUB2
8012SUB4
8013SUB8
8020MULMUL1スタックから値を2つポップして、符号なし乗算した結果をプッシュする
8021MUL2
8022MUL4
8023MUL8
802CSHLSHL1POP CX
POP AX
AND CL, 10h
SHL AX,CL
PUSH AX
802DSHL2
802ESHL4
802FSHL8
8030IMULIMUL1スタックから値を2つポップして、符号つき乗算した結果をプッシュする
8031IMUL2
8032IMUL4
8033IMUL8
8040DIVDIV1スタックの1つ目からスタックの2つ目を符号なし除算した商と剰余をプッシュする
8041DIV2
8042DIV4
8043DIV8
804CSHRSHR1POP CX
POP AX
AND CL, 10h
SHR AX,CL
PUSH AX
804DSHR2
804ESHR4
804FSHR8
8050IDIVIDIV1スタックの1つ目からスタックの2つ目を符号つき除算した商と剰余をプッシュする
8051IDIV2
8052IDIV4
8053IDIV8
805CSARSAR1POP CX
POP AX
AND CL, 10h
SAR AX,CL
PUSH AX
805DSAR2
805ESAR4
805FSAR8
8090ANDAND1POP DX
POP AX
AND AX,DX
PUSH AX
8091AND2
8092AND4
8093AND8
80A0OROR1POP DX
POP AX
OR AX,DX
PUSH AX
80A1OR2
80A2OR4
80A3OR8
80B0XORXOR1POP DX
POP AX
XOR AX,DX
PUSH AX
80B1XOR2
80B2XOR4
80B3XOR8