Fi write_memory

This commit is contained in:
Quentin Legot 2023-01-18 17:42:56 +01:00
parent 66eeb8f2b7
commit 559f94ca21

View File

@ -71,10 +71,9 @@ impl Machine {
if ![1, 2, 4, 8].contains(&size) {
panic!("ERROR write_memory: WRONG `size` PARAMETER ({}), must be 1, 2, 4 or 8", size)
}
let map: [u64; 8] = [0xff000000_00000000, 0x00ff0000_00000000, 0x0000ff00_00000000, 0x000000ff_00000000,
0x00000000_ff00000000, 0x00000000_00ff0000, 0x00000000_0000ff00, 0x00000000_000000ff];
for i in 0..size as usize {
machine.main_memory[address + i as usize] = (value & map[i]) as u8;
let inv_i = size as usize - i - 1;
machine.main_memory[address + i as usize] = ((value & 0xff << (8 * inv_i)) >> (inv_i * 8)) as u8;
}
}
@ -420,6 +419,7 @@ impl Machine {
assert_eq!((43 << 8) + 150, Machine::read_memory(&mut m, 2, 4));
}
#[test]
fn test_write_memory() {
let mut m = Machine::_init_machine();
Machine::write_memory(&mut m, 2, 6, (43 << 8) + 150);