ft: implement some more instructions
This commit is contained in:
@@ -165,22 +165,27 @@ pub enum Mnemonic {
|
||||
DEC_Reg(Register),
|
||||
DEC_Mod(ModRmTarget),
|
||||
// Jumps
|
||||
JO(Byte),
|
||||
JNO(Byte),
|
||||
JB(Byte),
|
||||
JNB(Byte),
|
||||
JZ(Byte),
|
||||
JNZ(Byte),
|
||||
JBE(Byte),
|
||||
JA(Byte),
|
||||
JS(Byte),
|
||||
JNS(Byte),
|
||||
JPE(Byte),
|
||||
JPO(Byte),
|
||||
JL(Byte),
|
||||
JGE(Byte),
|
||||
JLE(Byte),
|
||||
JG(Byte),
|
||||
JO(IByte),
|
||||
JNO(IByte),
|
||||
JB(IByte),
|
||||
JNB(IByte),
|
||||
JZ(IByte),
|
||||
JNZ(IByte),
|
||||
JBE(IByte),
|
||||
JA(IByte),
|
||||
JS(IByte),
|
||||
JNS(IByte),
|
||||
JPE(IByte),
|
||||
JPO(IByte),
|
||||
JL(IByte),
|
||||
JGE(IByte),
|
||||
JLE(IByte),
|
||||
JG(IByte),
|
||||
LOOPNZ(IByte),
|
||||
LOOPZ(IByte),
|
||||
LOOP(IByte),
|
||||
JCXZ(IByte),
|
||||
|
||||
// TEST
|
||||
TEST(ModRmTarget, Register),
|
||||
TEST_Ib(ModRmTarget, Byte),
|
||||
@@ -195,6 +200,9 @@ pub enum Mnemonic {
|
||||
MOV_ToReg(ModRmTarget, Register),
|
||||
MOV_FromSReg(ModRmTarget, SegmentRegister),
|
||||
MOV_ToSReg(ModRmTarget, SegmentRegister),
|
||||
MOV_Ib(ModRmTarget, Byte),
|
||||
MOV_Iv(ModRmTarget, Word),
|
||||
|
||||
MOV_AL0b(Byte),
|
||||
MOV_AX0v(Word),
|
||||
MOV_0bAL(Byte),
|
||||
@@ -281,8 +289,28 @@ pub enum Mnemonic {
|
||||
SHL_fromReg(ModRmTarget, Register),
|
||||
SHR_fromReg(ModRmTarget, Register),
|
||||
SAR_fromReg(ModRmTarget, Register),
|
||||
// IN
|
||||
IN_AL(Byte),
|
||||
IN_AX(Byte),
|
||||
IN_ALDX,
|
||||
IN_AXDX,
|
||||
// OUT
|
||||
OUT_AL(Byte),
|
||||
OUT_AX(Byte),
|
||||
OUT_ALDX,
|
||||
OUT_AXDX,
|
||||
// INT
|
||||
INT(Byte),
|
||||
// Flag Manipulation
|
||||
CLC,
|
||||
STC,
|
||||
CLI,
|
||||
STI,
|
||||
CLD,
|
||||
STD,
|
||||
// Repeat prefix
|
||||
REPNZ,
|
||||
REPZ,
|
||||
}
|
||||
|
||||
impl fmt::Display for Mnemonic {
|
||||
|
||||
Reference in New Issue
Block a user