page0015
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* OSECPUの仮想CPUの命令セット
-(by [[K]], 2013.03.28)
* リビジョン 0004
-命令セットとしては リビジョン 0003 と同じですが、アセン...
-今回の変更で、OSECPUの命令セットは第三世代OSASKとアセン...
--これは個人的には超重要!(笑)
--バイトコードレベルでは互換ではありませんが、変換は容易...
** ver.0.10
NOP(); 00 ...
LB(im8, im32); 01 [im8] [im32] ...
LIMM(Rxx, im32); 02 [Rxx] [im32] ...
PLIMM(Pxx, im32); 03 [Pxx] [im32] ...
CND(Rxx); 04 [Rxx] ...
LMEM(Rxx, ty32, Pxx); mc 08 [Rxx] [ty32] [Pxx] mc ...
SMEM(Rxx, ty32, Pxx); mc 09 [Rxx] [ty32] [Pxx] mc ...
PADD(Pxx, ty32, Pxx, Rxx); 0E [Pxx] [ty32] [Pxx] [Rxx] ...
PDIF(Rxx, ty32, Pxx, Pxx); 0F [Rxx] [ty32] [Pxx] [Pxx] ...
CP(Rxx, Rxx); 10 [Rxx] [Rxx] FF ...
OR(Rxx, Rxx, Rxx); 10 [Rxx] [Rxx] [Rxx] ...
XOR(Rxx, Rxx, Rxx); 11 [Rxx] [Rxx] [Rxx] ...
AND(Rxx, Rxx, Rxx); 12 [Rxx] [Rxx] [Rxx] ...
ADD(Rxx, Rxx, Rxx); 14 [Rxx] [Rxx] [Rxx] ...
SUB(Rxx, Rxx, Rxx); 15 [Rxx] [Rxx] [Rxx] ...
MUL(Rxx, Rxx, Rxx); 16 [Rxx] [Rxx] [Rxx] ...
SHL(Rxx, Rxx, Rxx); 18 [Rxx] [Rxx] [Rxx] ...
SAR(Rxx, Rxx, Rxx); 19 [Rxx] [Rxx] [Rxx] ...
1A [Rxx] [Rxx] [Rxx] ...
1B [Rxx] [Rxx] [Rxx] ...
1C [Pxx] [Pxx] ...
1D [Pxx] [Pxx] ...
PCP(Pxx, Pxx); 1E [Pxx] [Pxx] ...
1F [Pxx] [Pxx] [ty32] [ty32]...
CMPE(Rxx, Rxx, Rxx); 20 [Rxx] [Rxx] [Rxx] ...
CMPNE(Rxx, Rxx, Rxx); 21 [Rxx] [Rxx] [Rxx] ...
CMPL(Rxx, Rxx, Rxx); 22 [Rxx] [Rxx] [Rxx] ...
CMPGE(Rxx, Rxx, Rxx); 23 [Rxx] [Rxx] [Rxx] ...
CMPLE(Rxx, Rxx, Rxx); 24 [Rxx] [Rxx] [Rxx] ...
CMPG(Rxx, Rxx, Rxx); 25 [Rxx] [Rxx] [Rxx] ...
TSTZ(Rxx, Rxx, Rxx); 26 [Rxx] [Rxx] [Rxx] ...
TSTNZ(Rxx, Rxx, Rxx); 27 [Rxx] [Rxx] [Rxx] ...
PCMPE(Rxx, Pxx, Pxx); 28 [Rxx] [Pxx] [Pxx] ...
PCMPEN(Rxx, Pxx); 28 [Rxx] [Pxx] FF ...
PCMPNE(Rxx, Pxx, Pxx); 29 [Rxx] [Pxx] [Pxx] ...
PCMPNEN(Rxx, Pxx); 29 [Rxx] [Pxx] FF ...
PCMPL(Rxx, Pxx, Pxx); 2A [Rxx] [Pxx] [Pxx] ...
PCMPGE(Rxx, Pxx, Pxx); 2B [Rxx] [Pxx] [Pxx] ...
PCMPLE(Rxx, Pxx, Pxx); 2C [Rxx] [Pxx] [Pxx] ...
PCMPG(Rxx, Pxx, Pxx); 2D [Rxx] [Pxx] [Pxx] ...
-整数レジスタ番号Rxxはすべて1バイトで記述(ただし0~63ま...
-im32はビッグエンディアンで書きます(x86とは逆になって、...
** ver.0.11以降
-05: ?
-06: ?
-07: ?
-0A: PLMEM Pxx, typ32, Pxx, membchain
-0B: PSMEM Pxx, typ32, Pxx, membchain
-0C: LEA Pxx, typ32, Pxx, membchain
-0D: 0D [imm8] アサートレベル指定
-1A: DIV, MOD
-1C: PLMT0 Pxx, Pxx (pointer-limit-lower)
-1D: PLMT1 Pxx, Pxx (pointer-limit-upper)
-1F: PCST Pxx, Pxx, typ32, typ32 (pointer-cast)
** レジスタの典型的な用法
-R00-R0F : テンポラリレジスタ
-R10-R2B : 普通のレジスタ
-R2C-R2F : 特別なレジスタ
--R2E: 演算命令即値慣用句指定用
--R2F: 条件比較慣用句指定用
-R30-R37 : テンポラリ定数レジスタ
-R38-R3F : 普通の定数レジスタ
-P00 : プログラムカウンタ
-P01 : ベースポインタ
-P02-P0F : テンポラリレジスタ
-P10-P1B : 普通のレジスタ
-P1C : 予約済み
-P1D : 予約済み
-P1E : リターンアドレス
-P1F : 予約済み
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
終了行:
* OSECPUの仮想CPUの命令セット
-(by [[K]], 2013.03.28)
* リビジョン 0004
-命令セットとしては リビジョン 0003 と同じですが、アセン...
-今回の変更で、OSECPUの命令セットは第三世代OSASKとアセン...
--これは個人的には超重要!(笑)
--バイトコードレベルでは互換ではありませんが、変換は容易...
** ver.0.10
NOP(); 00 ...
LB(im8, im32); 01 [im8] [im32] ...
LIMM(Rxx, im32); 02 [Rxx] [im32] ...
PLIMM(Pxx, im32); 03 [Pxx] [im32] ...
CND(Rxx); 04 [Rxx] ...
LMEM(Rxx, ty32, Pxx); mc 08 [Rxx] [ty32] [Pxx] mc ...
SMEM(Rxx, ty32, Pxx); mc 09 [Rxx] [ty32] [Pxx] mc ...
PADD(Pxx, ty32, Pxx, Rxx); 0E [Pxx] [ty32] [Pxx] [Rxx] ...
PDIF(Rxx, ty32, Pxx, Pxx); 0F [Rxx] [ty32] [Pxx] [Pxx] ...
CP(Rxx, Rxx); 10 [Rxx] [Rxx] FF ...
OR(Rxx, Rxx, Rxx); 10 [Rxx] [Rxx] [Rxx] ...
XOR(Rxx, Rxx, Rxx); 11 [Rxx] [Rxx] [Rxx] ...
AND(Rxx, Rxx, Rxx); 12 [Rxx] [Rxx] [Rxx] ...
ADD(Rxx, Rxx, Rxx); 14 [Rxx] [Rxx] [Rxx] ...
SUB(Rxx, Rxx, Rxx); 15 [Rxx] [Rxx] [Rxx] ...
MUL(Rxx, Rxx, Rxx); 16 [Rxx] [Rxx] [Rxx] ...
SHL(Rxx, Rxx, Rxx); 18 [Rxx] [Rxx] [Rxx] ...
SAR(Rxx, Rxx, Rxx); 19 [Rxx] [Rxx] [Rxx] ...
1A [Rxx] [Rxx] [Rxx] ...
1B [Rxx] [Rxx] [Rxx] ...
1C [Pxx] [Pxx] ...
1D [Pxx] [Pxx] ...
PCP(Pxx, Pxx); 1E [Pxx] [Pxx] ...
1F [Pxx] [Pxx] [ty32] [ty32]...
CMPE(Rxx, Rxx, Rxx); 20 [Rxx] [Rxx] [Rxx] ...
CMPNE(Rxx, Rxx, Rxx); 21 [Rxx] [Rxx] [Rxx] ...
CMPL(Rxx, Rxx, Rxx); 22 [Rxx] [Rxx] [Rxx] ...
CMPGE(Rxx, Rxx, Rxx); 23 [Rxx] [Rxx] [Rxx] ...
CMPLE(Rxx, Rxx, Rxx); 24 [Rxx] [Rxx] [Rxx] ...
CMPG(Rxx, Rxx, Rxx); 25 [Rxx] [Rxx] [Rxx] ...
TSTZ(Rxx, Rxx, Rxx); 26 [Rxx] [Rxx] [Rxx] ...
TSTNZ(Rxx, Rxx, Rxx); 27 [Rxx] [Rxx] [Rxx] ...
PCMPE(Rxx, Pxx, Pxx); 28 [Rxx] [Pxx] [Pxx] ...
PCMPEN(Rxx, Pxx); 28 [Rxx] [Pxx] FF ...
PCMPNE(Rxx, Pxx, Pxx); 29 [Rxx] [Pxx] [Pxx] ...
PCMPNEN(Rxx, Pxx); 29 [Rxx] [Pxx] FF ...
PCMPL(Rxx, Pxx, Pxx); 2A [Rxx] [Pxx] [Pxx] ...
PCMPGE(Rxx, Pxx, Pxx); 2B [Rxx] [Pxx] [Pxx] ...
PCMPLE(Rxx, Pxx, Pxx); 2C [Rxx] [Pxx] [Pxx] ...
PCMPG(Rxx, Pxx, Pxx); 2D [Rxx] [Pxx] [Pxx] ...
-整数レジスタ番号Rxxはすべて1バイトで記述(ただし0~63ま...
-im32はビッグエンディアンで書きます(x86とは逆になって、...
** ver.0.11以降
-05: ?
-06: ?
-07: ?
-0A: PLMEM Pxx, typ32, Pxx, membchain
-0B: PSMEM Pxx, typ32, Pxx, membchain
-0C: LEA Pxx, typ32, Pxx, membchain
-0D: 0D [imm8] アサートレベル指定
-1A: DIV, MOD
-1C: PLMT0 Pxx, Pxx (pointer-limit-lower)
-1D: PLMT1 Pxx, Pxx (pointer-limit-upper)
-1F: PCST Pxx, Pxx, typ32, typ32 (pointer-cast)
** レジスタの典型的な用法
-R00-R0F : テンポラリレジスタ
-R10-R2B : 普通のレジスタ
-R2C-R2F : 特別なレジスタ
--R2E: 演算命令即値慣用句指定用
--R2F: 条件比較慣用句指定用
-R30-R37 : テンポラリ定数レジスタ
-R38-R3F : 普通の定数レジスタ
-P00 : プログラムカウンタ
-P01 : ベースポインタ
-P02-P0F : テンポラリレジスタ
-P10-P1B : 普通のレジスタ
-P1C : 予約済み
-P1D : 予約済み
-P1E : リターンアドレス
-P1F : 予約済み
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
ページ名: