diff --git a/src/crab/thumb/move_compare_add_subtract.cr b/src/crab/thumb/move_compare_add_subtract.cr index 9924cff..e943d60 100644 --- a/src/crab/thumb/move_compare_add_subtract.cr +++ b/src/crab/thumb/move_compare_add_subtract.cr @@ -7,7 +7,7 @@ module THUMB case op when 0b00 then res = @r[rd] = offset when 0b01 then res = sub(@r[rd], offset, true) - when 0b10 then res = add(@r[rd], offset, true) + when 0b10 then res = @r[rd] = add(@r[rd], offset, true) when 0b11 then res = @r[rd] = sub(@r[rd], offset, true) else raise "Invalid move/compare/add/subtract op: #{op}" end diff --git a/src/crab/thumb/multiple_load_store.cr b/src/crab/thumb/multiple_load_store.cr index fa14e44..5657521 100644 --- a/src/crab/thumb/multiple_load_store.cr +++ b/src/crab/thumb/multiple_load_store.cr @@ -1,10 +1,10 @@ module THUMB def thumb_multiple_load_store(instr : Word) : Nil - load_from_memory = bit?(instr, 11) + load = bit?(instr, 11) rb = bits(instr, 8..10) list = bits(instr, 0..7) address = @r[rb] - if load_from_memory # ldmia + if load # ldmia 8.times do |idx| if bit?(list, idx) @r[idx] = @gba.bus.read_word(address)