?? vmbasic.h
字號:
#ifndef _VM_BASIC_
#define _VM_BASIC_
#include "BasicType.h"
/*
機器模型:
寄存器: PC,SP,FLAG,
STACK:16K
HEAP: unlimited
指令:
Mov A,B; A,B is addresses : A = B
Set A,100; A is address : A = 100
Add A,B,C; A = C + B;
Sub A,B,C; A = B - C;
Mul A,B,C; A = C * B;
Div A,B,C; A = B / C;
AND A,B,C; A = B & C;
OR A,B,C; A = B | C;
INC A; A++;
DEC A; A--;
NEG A; A = -A;
TEST_EQ A,B,FLAG; FLAG = (A == B)
TEST_BG A,B,FLAG; FLAG = (A > B)
TEST_LG A,B,FLAG; FLAG = (A < B)
TEST_BEG A,B,FLAG; FLAG = (A >= B)
TEST_LEG A,B,FLAG; FLAG = (A <= B)
JMP Addr ; PC = Addr
JZ Addr Flag; if(Flag == 0) PC = Addr;
JNZ Addr Flag; if(Flag == 0) PC = Addr;
CALL Addr ; PC = Addr
PUSH A ; [SP] = A; SP++;
POP A; A = [SP]; SP--;
NEW 10; new 10bytes
DELETE; delete[]
*/
#define MAX_STACK_SIZE 16000
enum EInstruct
{
E_MOV = 0,
E_SET,
E_ADD,
E_SUB,
E_MUL,
E_DIV,
E_AND,
E_OR,
E_MOVF,// float operation
E_SETF,
E_ADDF,
E_SUBF,
E_MULF,
E_DIVF,
E_INC,
E_DEC,
E_NEG,
E_TEQ,
E_TBG,
E_TLG,
E_TBEG,
E_TLEG,
E_TEQF,
E_TBGF,
E_TLGF,
E_TBEGF,
E_TLEGF,
E_JMP,
E_JZ,
E_JNZ,
E_CALL,
E_RET,
E_END,
E_NOP,
E_PUSH,
E_POP,
E_PUSHA,// push sp,pc
E_NEW,
E_DELETE,
};
enum EErrorType
{
E_OK,
E_FALSE,
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -