📄 intel86.java
字号:
throw new InternalError ("Intel86: Invalid IDIV source operand: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xf6 | valWFlag (src)), // DO NOT EDIT makeModRM (0x07, src), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT IMUL (Object src) { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT if ((OT_mem != sot) && (OT_reg != sot)) { // DO NOT EDIT throw new InternalError ("Intel86: Invalid IMUL source operand: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xf6 | valWFlag (src)), // DO NOT EDIT makeModRM (0x05, src), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT CBW () // DO NOT EDIT { // DO NOT EDIT return encode (0x98); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT PrefixOPSIZE () // DO NOT EDIT { // DO NOT EDIT return encode (0x66); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT CWD () // DO NOT EDIT { // DO NOT EDIT return encode (0x99); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT LEAVE () // DO NOT EDIT { // DO NOT EDIT return encode (0xc9); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT RET () // DO NOT EDIT { // DO NOT EDIT return encode (0xc3); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FCHS () // DO NOT EDIT { // DO NOT EDIT return encode (0xd9, 0xe0); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FTST () // DO NOT EDIT { // DO NOT EDIT return encode (0xd9, 0xe4); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FRNDINT () // DO NOT EDIT { // DO NOT EDIT return encode (0xd9, 0xfc); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FNSTSW () // DO NOT EDIT { // DO NOT EDIT return encode (0xdf, 0xe0); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FUCOMPP () // DO NOT EDIT { // DO NOT EDIT return encode (0xda, 0xe9); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FSTP (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FSTP must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xd9 | valFFlag (op)), // DO NOT EDIT makeModRM (3, op), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FLD (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FLD must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xd9 | valFFlag (op)), // DO NOT EDIT makeModRM (0, op), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FLDCW (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FLDCW must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xd9 | valFFlag (op)), // DO NOT EDIT makeModRM (5, op), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FNSTCW (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FNSTCW must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xd9 | valFFlag (op)), // DO NOT EDIT makeModRM (7, op), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FILD (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FILD must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT switch (((MemoryRef)op).getRefSize ()) { // DO NOT EDIT case 2: // DO NOT EDIT return encode (makeByteArray (0xdf), // DO NOT EDIT makeModRM (0, op), // DO NOT EDIT null); // DO NOT EDIT case 4: // DO NOT EDIT return encode (makeByteArray (0xdb), // DO NOT EDIT makeModRM (0, op), // DO NOT EDIT null); // DO NOT EDIT case 8: // DO NOT EDIT return encode (makeByteArray (0xdf), // DO NOT EDIT makeModRM (5, op), // DO NOT EDIT null); // DO NOT EDIT default: // DO NOT EDIT throw new InternalError ("Intel86: Unsupported FILD size: " + op); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FISTP (Object op) { // DO NOT EDIT MemoryRef mop; // DO NOT EDIT // DO NOT EDIT try { // DO NOT EDIT mop = (MemoryRef) op; // DO NOT EDIT } catch (ClassCastException e) { // DO NOT EDIT throw new InternalError ("Intel86: FISTP must take MemoryRef operand: " + op); // DO NOT EDIT } // DO NOT EDIT switch (((MemoryRef)op).getRefSize ()) { // DO NOT EDIT case 2: // DO NOT EDIT return encode (makeByteArray (0xdf), // DO NOT EDIT makeModRM (3, op), // DO NOT EDIT null); // DO NOT EDIT case 4: // DO NOT EDIT return encode (makeByteArray (0xdb), // DO NOT EDIT makeModRM (3, op), // DO NOT EDIT null); // DO NOT EDIT case 8: // DO NOT EDIT return encode (makeByteArray (0xdf), // DO NOT EDIT makeModRM (7, op), // DO NOT EDIT null); // DO NOT EDIT default: // DO NOT EDIT throw new InternalError ("Intel86: Unsupported FISTP size: " + op); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FADDP (Object src) { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT if (OT_fpstack != sot) { // DO NOT EDIT throw new InternalError ("Intel86: Invalid type " + sot + " for FADDP source: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (0xde, 0xc0 | ((Register)src).getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FDIVRP (Object src) { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT if (OT_fpstack != sot) { // DO NOT EDIT throw new InternalError ("Intel86: Invalid type " + sot + " for FDIVRP source: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (0xde, 0xf0 | ((Register)src).getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FMULP (Object src) { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT if (OT_fpstack != sot) { // DO NOT EDIT throw new InternalError ("Intel86: Invalid type " + sot + " for FMULP source: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (0xde, 0xc8 | ((Register)src).getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT FSUBRP (Object src) { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT if (OT_fpstack != sot) { // DO NOT EDIT throw new InternalError ("Intel86: Invalid type " + sot + " for FSUBRP source: " + src); // DO NOT EDIT } // DO NOT EDIT return encode (0xde, 0xe0 | ((Register)src).getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT INC (Object dst) // DO NOT EDIT { // DO NOT EDIT int dot = checkOperand (dst); // DO NOT EDIT if (OT_reg == dot) { // DO NOT EDIT Register rOp = (Register) dst; // DO NOT EDIT if (! rOp.is8BitReg ()) { // DO NOT EDIT return encode (0x40 | rOp.getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xfe | valWFlag (dst)), // DO NOT EDIT makeModRM (0, dst), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT public byte [] // DO NOT EDIT DEC (Object dst) // DO NOT EDIT { // DO NOT EDIT int dot = checkOperand (dst); // DO NOT EDIT if (OT_reg == dot) { // DO NOT EDIT Register rOp = (Register) dst; // DO NOT EDIT if (! rOp.is8BitReg ()) { // DO NOT EDIT return encode (0x48 | rOp.getRegBitName ()); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0xfe | valWFlag (dst)), // DO NOT EDIT makeModRM (1, dst), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT public byte [] // DO NOT EDIT ADD (Object src, // DO NOT EDIT Object dst) // DO NOT EDIT { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT int dot = checkOperand (dst); // DO NOT EDIT if (OT_imm == sot) { // DO NOT EDIT Immediate imOp = (Immediate) src; // DO NOT EDIT // DO NOT EDIT if (OT_reg == dot) { // DO NOT EDIT Register rOp = (Register) dst; // DO NOT EDIT // DO NOT EDIT if (rOp.isAReg ()) { // DO NOT EDIT boolean byteOp; // DO NOT EDIT // DO NOT EDIT byteOp = rOp.is8BitReg (); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x04 | (byteOp ? 0x00 : WFlag)), // DO NOT EDIT null, // DO NOT EDIT makeByteArray (imOp.setImmSize (byteOp ? 1 : 4))); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT int wFlag; // DO NOT EDIT wFlag = valWFlag (dst); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x80 // DO NOT EDIT | valSFlag (imOp) // DO NOT EDIT | wFlag), // DO NOT EDIT makeModRM (0, dst), // DO NOT EDIT makeByteArray (imOp)); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0x00 // DO NOT EDIT | valDFlag (src, dst) // DO NOT EDIT | valWFlag (src, dst)), // DO NOT EDIT makeModRM (src, dst), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT OR (Object src, // DO NOT EDIT Object dst) // DO NOT EDIT { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT int dot = checkOperand (dst); // DO NOT EDIT if (OT_imm == sot) { // DO NOT EDIT Immediate imOp = (Immediate) src; // DO NOT EDIT // DO NOT EDIT if (OT_reg == dot) { // DO NOT EDIT Register rOp = (Register) dst; // DO NOT EDIT // DO NOT EDIT if (rOp.isAReg ()) { // DO NOT EDIT boolean byteOp; // DO NOT EDIT // DO NOT EDIT byteOp = rOp.is8BitReg (); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x0c | (byteOp ? 0x00 : WFlag)), // DO NOT EDIT null, // DO NOT EDIT makeByteArray (imOp.setImmSize (byteOp ? 1 : 4))); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT int wFlag; // DO NOT EDIT wFlag = valWFlag (dst); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x80 // DO NOT EDIT | valSFlag (imOp) // DO NOT EDIT | wFlag), // DO NOT EDIT makeModRM (1, dst), // DO NOT EDIT makeByteArray (imOp)); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0x08 // DO NOT EDIT | valDFlag (src, dst) // DO NOT EDIT | valWFlag (src, dst)), // DO NOT EDIT makeModRM (src, dst), // DO NOT EDIT null); // DO NOT EDIT } // DO NOT EDIT // DO NOT EDIT public byte [] // DO NOT EDIT ADC (Object src, // DO NOT EDIT Object dst) // DO NOT EDIT { // DO NOT EDIT int sot = checkOperand (src); // DO NOT EDIT int dot = checkOperand (dst); // DO NOT EDIT if (OT_imm == sot) { // DO NOT EDIT Immediate imOp = (Immediate) src; // DO NOT EDIT // DO NOT EDIT if (OT_reg == dot) { // DO NOT EDIT Register rOp = (Register) dst; // DO NOT EDIT // DO NOT EDIT if (rOp.isAReg ()) { // DO NOT EDIT boolean byteOp; // DO NOT EDIT // DO NOT EDIT byteOp = rOp.is8BitReg (); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x14 | (byteOp ? 0x00 : WFlag)), // DO NOT EDIT null, // DO NOT EDIT makeByteArray (imOp.setImmSize (byteOp ? 1 : 4))); // DO NOT EDIT } // DO NOT EDIT } // DO NOT EDIT int wFlag; // DO NOT EDIT wFlag = valWFlag (dst); // DO NOT EDIT return encode ( // DO NOT EDIT makeByteArray (0x80 // DO NOT EDIT | valSFlag (imOp) // DO NOT EDIT | wFlag), // DO NOT EDIT makeModRM (2, dst), // DO NOT EDIT makeByteArray (imOp)); // DO NOT EDIT } // DO NOT EDIT return encode (makeByteArray (0x10 // DO NOT EDIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -