1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
use super::Instruction; use super::InstructionTrait; pub use super::operand::Operand; #[derive(Debug, PartialEq)] pub struct Ld { dst: Operand, src: Operand, size: usize, } impl Ld { pub fn new(dst: Operand, src: Operand, size: usize) -> Ld { Ld { dst, src, size } } pub fn new_instruction(dst: Operand, src: Operand, size: usize) -> Instruction { Instruction::Ld(Self::new(dst, src, size)) } } impl From<Ld> for Instruction { fn from(item: Ld) -> Self { Self::Ld(item) } } impl std::fmt::Display for Ld { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { write!(f, "LD {}, {}", self.dst, self.src) } } impl InstructionTrait for Ld { fn size(&self) -> usize { self.size } }