ft: Implement memory pointer (Mp) operand
This commit is contained in:
@@ -206,11 +206,13 @@ pub enum Mnemonic {
|
||||
CALL_p(Pointer),
|
||||
CALL_v(isize),
|
||||
CALL_Mod(ModRmTarget),
|
||||
CALL_Mp(ModRmTarget, Pointer),
|
||||
// JUMP
|
||||
JMP_p(Pointer),
|
||||
JMP_b(isize), // parses IByte, but stores as isize
|
||||
JMP_v(isize), // parwses IWord, but stores as isize
|
||||
JMP_Mod(ModRmTarget),
|
||||
JMP_Mp(ModRmTarget, Pointer),
|
||||
// WAIT
|
||||
WAIT,
|
||||
// Push/Pop Flags
|
||||
@@ -236,8 +238,8 @@ pub enum Mnemonic {
|
||||
RETF,
|
||||
IRET,
|
||||
// Load ES/DS Register
|
||||
LES(ModRmTarget),
|
||||
LDS(ModRmTarget),
|
||||
LES(ModRmTarget, Pointer),
|
||||
LDS(ModRmTarget, Pointer),
|
||||
// NOT
|
||||
NOT(ModRmTarget),
|
||||
// NEG
|
||||
@@ -443,11 +445,13 @@ impl fmt::Display for Mnemonic {
|
||||
Self::CALL_p(ptr) => write!(f, "call {ptr}"),
|
||||
Self::CALL_v(word) => write!(f, "call {word:#04x}"),
|
||||
Self::CALL_Mod(target) => write!(f, "call {target}"),
|
||||
Self::CALL_Mp(target, ptr) => write!(f, "call {target}, {ptr}"),
|
||||
|
||||
Self::JMP_p(ptr) => write!(f, "jmp {ptr}"),
|
||||
Self::JMP_b(byte) => write!(f, "jmp {byte:#04x}"),
|
||||
Self::JMP_v(word) => write!(f, "jmp {word:#04x}"),
|
||||
Self::JMP_Mod(target) => write!(f, "jmp {target}"),
|
||||
Self::JMP_Mp(target, ptr) => write!(f, "jmp {target}, {ptr}"),
|
||||
|
||||
Self::WAIT => write!(f, "wait"),
|
||||
|
||||
@@ -473,8 +477,8 @@ impl fmt::Display for Mnemonic {
|
||||
Self::RETF => write!(f, "retf"),
|
||||
Self::IRET => write!(f, "iret"),
|
||||
|
||||
Self::LES(target) => write!(f, "les {target}"),
|
||||
Self::LDS(target) => write!(f, "lds {target}"),
|
||||
Self::LES(target, ptr) => write!(f, "les {target}, {ptr}"),
|
||||
Self::LDS(target, ptr) => write!(f, "lds {target}, {ptr}"),
|
||||
|
||||
Self::NOT(target) => write!(f, "not {target}"),
|
||||
Self::NEG(target) => write!(f, "neg {target}"),
|
||||
|
||||
Reference in New Issue
Block a user