📄 pcode.h
字号:
, pcode(AddInt,0) // add 2 integers
, pcode(SubInt,0) // subtract
, pcode(MulInt,0) // signed multiply
, pcode(MulUInt,0) // unsigned multiply
, pcode(DivInt,0) // signed divide
, pcode(DivUInt,0) // unsigned divide
, pcode(ModInt,0) // signed modulus
, pcode(ModUInt,0) // unsigned modulus
, pcode(OrInt,0) // or |
, pcode(AndInt,0) // and &
, pcode(XorInt,0) // xor ^
, pcode(NegInt,0) // negate -
, pcode(NotInt,0) // not !
, pcode(ComInt,0) // complement ~
, pcode(IShiftL1,0) // shift integer left by 1
, pcode(IShiftLn,0) // shift integer left by n
, pcode(IShiftRn,0) // shift integer right by n
, pcode(IAShiftRn,0) // shift integer arithmetic right by n
, pcode(AddLong,0) // add 2 longs
, pcode(SubLong,0) // subtract 2 longs
, pcode(MulLong,0) // multiply 2 longs
, pcode(DivLong,0) // divide 2 longs
, pcode(ModLong,0) // modulus of 2 longs
, pcode(DivULong,0) // divide 2 unsigned longs
, pcode(ModULong,0) // modulus of 2 unsigned longs
, pcode(OrLong,0) // or |
, pcode(AndLong,0) // and &
, pcode(XorLong,0) // xor ^
, pcode(NegLong,0) // negate -
, pcode(NotLong,0) // not !
, pcode(ComLong,0) // complement ~
, pcode(LShiftL1,0) // shift long left by 1
, pcode(LShiftLn,0) // shift long left by n
, pcode(LShiftRn,0) // shift long right by n
, pcode(LAShiftRn,0) // shift long arithmetic right by n
, pcode(CmpInt,0) // compare integers
, pcode(CmpInt0,0) // compare with 0
, pcode(CmpLong,0) // compare longs
, pcode(CmpNULL,0) // compare pointer with NULL
, pcode(jmp_short,1) // unconditional jump (1 byte offset)
, pcode(jmp_long,2) // unconditional jump (2 byte offset)
, pcode(VoidFunc,4) // void function call
, pcode(IntFunc,4) // int function call
, pcode(LongFunc,4) // long function call
, pcode(VoidHFunc,1) // void handle function call
, pcode(IntHFunc,1) // int handle function call
, pcode(LongHFunc,1) // long handle function call
, pcode(RetVoid0,0) // return void
, pcode(RetVoid2,0) // return void (pop 2 bytes)
, pcode(RetVoid4,0) // return void (pop 4 bytes)
, pcode(RetVoid6,0) // return void (pop 6 bytes)
, pcode(RetVoid8,0) // return void (pop 8 bytes)
, pcode(RetVoidn,3) // return void followed by "ret far n" ins.
, pcode(RetInt0,0) // return integer
, pcode(RetInt2,0) // return integer (pop 2 bytes)
, pcode(RetInt4,0) // return integer (pop 4 bytes)
, pcode(RetInt6,0) // return integer (pop 6 bytes)
, pcode(RetInt8,0) // return integer (pop 8 bytes)
, pcode(RetIntn,3) // return int followed by "ret far n" ins.
, pcode(RetLong0,0) // return long
, pcode(RetLong2,0) // return long (pop 2 bytes)
, pcode(RetLong4,0) // return long (pop 4 bytes)
, pcode(RetLong6,0) // return long (pop 6 bytes)
, pcode(RetLong8,0) // return long (pop 8 bytes)
, pcode(RetLongn,3) // return long followed by "ret far n" ins.
, pcode(DiscardParm,1) // discard n words from stack
, pcode(ByteIndex,0) // char array[index]
, pcode(IntIndex,0) // short array[index]
, pcode(LongIndex,0) // long array[index]
, pcode(Cast2Char,0) // cast value to signed char
, pcode(Cast2UChar,0) // cast value to unsigned char
, pcode(BSwitch,2) // switch table with byte constants
, pcode(ISwitch,2) // switch table with integer constants
, pcode(LSwitch,2) // switch table with long constants
, pcode(XPushChar,1) // push signed char at offset from addr on stack
, pcode(XPushUChar,1) // push unsigned char at offset from addr on stk
, pcode(XPushInt,1) // push integer at offset from addr on stack
, pcode(XPushLong,1) // push long at offset from addr on stack
, pcode(XPushDouble,1) // push double at offset from addr on stack
, pcode(XPopChar,1) // pop char at offset from addr on stack
, pcode(XPopInt,1) // pop integer at offset from addr on stack
, pcode(XPopLong,1) // pop long at offset from addr on stack
, pcode(XPopDouble,1) // pop double at offset from addr on stack
, pcode(Pop_AX,0) // pop parm into AX
, pcode(Pop_AX_DX,0) // pop parms into AX and DX
, pcode(Pop_AX_DX_BX,0) // pop parms into AX and DX and BX
, pcode(Pop_AX_DX_BX_CX,0)// pop parms into AX and DX and BX and CX
, pcode(Pop_AX_BX_CX,0) // pop parms into AX and BX and CX
, pcode(Pop_AX_BX_CX_DX,0)// pop parms into AX and BX and CX and DX
, pcode(Pop_DX_CX_BX_AX,0)// pop parms into DX and CX and BX and AX
, pcode(PushNearAddr,2) // push DGROUP + offset given in instruction
, pcode(XPushNearPtr,1) // push DGROUP + offset indirect from stack
, pcode(VoidIFunc,0) // void indirect function call
, pcode(IntIFunc,0) // int indirect function call
, pcode(LongIFunc,0) // long indirect function call
, pcode(PopICall,0) // pop indirect call address from stack
, pcode(PopINCall,0) // pop indirect near call address from stack
, pcode(LoadCodeAddr,2) // load near addr of func for indirect call
, pcode(PushRetAddr,0) // push far return address to pcode interpreter
, pcode(VoidINFunc,1) // void indirect near function call
, pcode(IntINFunc,1) // int indirect near function call
, pcode(LongINFunc,1) // long indirect near function call
, pcode(FloatINFunc,1) // float indirect near function call
, pcode(DoubleINFunc,1) // double indirect near function call
, pcode(StructINFunc,1) // struct indirect near function call
, pcode(TwoByteOp,1) // prefix for 2 byte opcode
, pcode(DoubleFunc,4) // double function call
, pcode(DoubleHFunc,1) // double handle function call
, pcode(AddDouble,0) // add double
, pcode(SubDouble,0) // subtract
, pcode(MulDouble,0) // multiply
, pcode(DivDouble,0) // divide
, pcode(NegDouble,0) // negate
, pcode(CmpDouble,0) // compare
, pcode(AddFloat,0) // add float
, pcode(SubFloat,0) // subtract
, pcode(MulFloat,0) // multiply
, pcode(DivFloat,0) // divide
, pcode(NegFloat,0) // negate
, pcode(CmpFloat,0) // compare
};
#if defined(_DEBUG_)
static char *PJmp_Codes[] = {
#elif defined(_PARMS_)
static unsigned char PJmp_Parms[] = {
#else
enum pjmpcodes {
#endif
pcode(hop_a,1) // hop if above
, pcode(hop_ae,1) // hop if above or equal
, pcode(hop_b,1) // hop if below
, pcode(hop_be,1) // hop if below or equal
, pcode(hop_e,1) // hop if equal
, pcode(hop_ne,1) // hop if not equal
, pcode(hop_g,1) // hop if greater than
, pcode(hop_ge,1) // hop if greater than or equal
, pcode(hop_l,1) // hop if less than
, pcode(hop_le,1) // hop if less than or equal
, pcode(jmp_a,2) // jump if above
, pcode(jmp_ae,2) // jump if above or equal
, pcode(jmp_b,2) // jump if below
, pcode(jmp_be,2) // jump if below or equal
, pcode(jmp_e,2) // jump if equal
, pcode(jmp_ne,2) // jump if not equal
, pcode(jmp_g,2) // jump if greater than
, pcode(jmp_ge,2) // jump if greater than or equal
, pcode(jmp_l,2) // jump if less than
, pcode(jmp_le,2) // jump if less than or equal
};
#if defined(_DEBUG_)
static char *P2_Codes[] = {
#elif defined(_PARMS_)
static unsigned char P2_Parms[] = {
#else
enum p2codes {
#endif
pcode(StructFunc,4) // struct function call
, pcode(StructIFunc,0) // struct indirect function call
, pcode(RetStructn,3) // struct return
, pcode(PostIncChar,0) // c++
, pcode(PostIncUChar,0) // uc++
, pcode(PostIncInt,0) // i++
, pcode(PostIncLong,0) // l++
, pcode(PostIncPtr2Char,0)// pc++
, pcode(PostIncPtr2Int,0) // pi++
, pcode(PostIncPtr2Long,0)// pl++
, pcode(PostIncPtr2Struct,2)// ps++
, pcode(PostDecChar,0) // c--
, pcode(PostDecUChar,0) // uc--
, pcode(PostDecInt,0) // i--
, pcode(PostDecLong,0) // l--
, pcode(PostDecPtr2Char,0)// pc--
, pcode(PostDecPtr2Int,0) // pi--
, pcode(PostDecPtr2Long,0)// pl--
, pcode(PostDecPtr2Struct,2)// ps--
, pcode(RetFloatn,3) // return float
, pcode(RetDoublen,3) // return double
, pcode(FloatFunc,4) // float function call
, pcode(FloatIFunc,0) // float indirect function call
, pcode(DoubleIFunc,0) // double indirect function call
, pcode(PostIncFloat,0) // f++
, pcode(PostIncDouble,0) // d++
, pcode(PostDecFloat,0) // f--
, pcode(PostDecDouble,0) // d--
, pcode(Float2Int,0) // convert float to int
, pcode(Double2Int,0) // convert double to int
, pcode(Float2Long,0) // convert float to long
, pcode(Double2Long,0) // convert double to long
, pcode(Int2Float,0) // convert int to float
, pcode(Long2Float,0) // convert long to float
, pcode(Double2Float,0) // convert double to float
, pcode(Int2Double,0) // convert int to double
, pcode(Long2Double,0) // convert long to double
, pcode(ULong2Double,0) // convert unsigned long to double
, pcode(Float2Double,0) // convert float to double
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -