use c-like struct for Set instruction
This commit is contained in:
parent
5dd11bc74c
commit
a4e2942eea
2 changed files with 7 additions and 7 deletions
|
@ -270,7 +270,7 @@ where
|
||||||
// Set PC to subroutine address
|
// Set PC to subroutine address
|
||||||
self.program_counter = address;
|
self.program_counter = address;
|
||||||
}
|
}
|
||||||
ProcessorInstruction::Set(vx, vy) => {
|
ProcessorInstruction::Set { vx, vy } => {
|
||||||
trace!("Set VX={vx:04x} VY={vy:04x}");
|
trace!("Set VX={vx:04x} VY={vy:04x}");
|
||||||
self.registers[vx as usize] = self.registers[vy as usize];
|
self.registers[vx as usize] = self.registers[vy as usize];
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ pub enum ProcessorInstruction {
|
||||||
/// Pops the stack and sets the PC
|
/// Pops the stack and sets the PC
|
||||||
Return,
|
Return,
|
||||||
/// Set VX to the value of VY
|
/// Set VX to the value of VY
|
||||||
Set(u8, u8),
|
Set { vx: u8, vy: u8 },
|
||||||
/// Or VX with VY and store in VX.
|
/// Or VX with VY and store in VX.
|
||||||
BinaryOr(u8, u8),
|
BinaryOr(u8, u8),
|
||||||
/// And VX with VY and store in VX.
|
/// And VX with VY and store in VX.
|
||||||
|
@ -162,10 +162,10 @@ impl Instruction {
|
||||||
(0x2, _, _, _) => ProcessorInstruction::Call {
|
(0x2, _, _, _) => ProcessorInstruction::Call {
|
||||||
address: Self::grab_inner_data(data),
|
address: Self::grab_inner_data(data),
|
||||||
},
|
},
|
||||||
(0x8, _, _, 0x0) => ProcessorInstruction::Set(
|
(0x8, _, _, 0x0) => ProcessorInstruction::Set {
|
||||||
Self::grab_first_nibble(data),
|
vx: Self::grab_first_nibble(data),
|
||||||
Self::grab_middle_nibble(data),
|
vy: Self::grab_middle_nibble(data),
|
||||||
),
|
},
|
||||||
(0x8, _, _, 0x1) => ProcessorInstruction::BinaryOr(
|
(0x8, _, _, 0x1) => ProcessorInstruction::BinaryOr(
|
||||||
Self::grab_first_nibble(data),
|
Self::grab_first_nibble(data),
|
||||||
Self::grab_middle_nibble(data),
|
Self::grab_middle_nibble(data),
|
||||||
|
@ -423,7 +423,7 @@ mod tests {
|
||||||
let instruction = Instruction::new([0x81, 0x40]);
|
let instruction = Instruction::new([0x81, 0x40]);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
instruction.processor_instruction,
|
instruction.processor_instruction,
|
||||||
ProcessorInstruction::Set(1, 4)
|
ProcessorInstruction::Set { vx: 1, vy: 4 }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue