♻️ Consolidated instruction definition and manipulation in instruction.rs

This commit is contained in:
François Autin
2023-03-29 16:08:06 +02:00
parent d77c2448e3
commit 3fa3ce0e99
5 changed files with 510 additions and 517 deletions

View File

@ -16,9 +16,8 @@ use std::{
fs::File
};
use crate::simulator::{
print,
error::MachineError,
decode::*,
instruction::{*, self},
interrupt::Interrupt,
global::*,
register::*
@ -179,10 +178,10 @@ impl Machine {
pub fn print_status(&self) {
println!("######### Machine status #########");
for i in (0..32).step_by(3) {
print!(">{0: <4} : {1:<16x} ", print::REG_X[i], self.int_reg.get_reg(i as u8));
print!(">{0: <4} : {1:<16x} ", print::REG_X[i+1], self.int_reg.get_reg((i+1) as u8));
print!(">{0: <4} : {1:<16x} ", instruction::REG_X[i], self.int_reg.get_reg(i as u8));
print!(">{0: <4} : {1:<16x} ", instruction::REG_X[i+1], self.int_reg.get_reg((i+1) as u8));
if i+2 < 32 {
print!(">{0: <4} : {1:<16x} ", print::REG_X[i+2], self.int_reg.get_reg((i+2) as u8));
print!(">{0: <4} : {1:<16x} ", instruction::REG_X[i+2], self.int_reg.get_reg((i+2) as u8));
}
println!();
}
@ -240,7 +239,7 @@ impl Machine {
let inst : Instruction = decode(val);
self.print_status();
println!("executing instruction : {:016x} at pc {:x}", val, self.pc);
println!("{}", print::print(decode(val), self.pc as i32));
println!("{}", instruction::print(decode(val), self.pc as i32));
let trace = Self::string_registers(self);
self.registers_trace.push_str(format!("{}\n", trace).as_str());