Fixed incorrect length and address readouts because of an incorrectly configured radix

This commit is contained in:
François Autin 2023-03-15 10:45:02 +01:00
parent 2a3d8f3550
commit 0047b7d762

View File

@ -39,8 +39,8 @@ impl Section {
/// Creates a memory section from a SectionFormat /// Creates a memory section from a SectionFormat
fn from(section: &SectionFormat) -> Section { fn from(section: &SectionFormat) -> Section {
let addr = usize::from_str_radix(&section.addr, 16).unwrap_or_default(); let addr = usize::from_str_radix(&section.addr, 10).unwrap_or_default();
let len = usize::from_str_radix(&section.len, 16).unwrap_or_default(); let len = usize::from_str_radix(&section.len, 10).unwrap_or_default();
let content: Vec<u8> = section.content.as_bytes().chunks(2).map(|x| { let content: Vec<u8> = section.content.as_bytes().chunks(2).map(|x| {
u8::from_str_radix(std::str::from_utf8(x).unwrap_or_default(), 16).unwrap_or_default() u8::from_str_radix(std::str::from_utf8(x).unwrap_or_default(), 16).unwrap_or_default()
}).collect(); }).collect();
@ -168,9 +168,7 @@ impl MemChecker{
machine.int_reg.set_reg(2, m_c.sp as i64); machine.int_reg.set_reg(2, m_c.sp as i64);
machine.pc = m_c.pc as u64; machine.pc = m_c.pc as u64;
for section in m_c.sections.iter() { for section in m_c.sections.iter() {
for (i,b) in section.content.iter().enumerate() { for (i,b) in section.content.iter().enumerate() {
machine.main_memory[section.addr + i] = *b; machine.main_memory[section.addr + i] = *b;
} }