fix: исправлено использование адресации в step
This commit is contained in:
15
src/vm.py
15
src/vm.py
@ -108,16 +108,17 @@ class VM:
|
||||
"""
|
||||
Make one step (only step into)
|
||||
"""
|
||||
# По какой-то причине адрессация работает
|
||||
# так, будто мы на 1 слово впереди опкода
|
||||
if not VMFlags.AFTER_BRANCH:
|
||||
self.pc = c_uint32(self.cc.value + 1)
|
||||
# сбрасываем флаг AFTER_BRANCH
|
||||
self._vm_flags &= ~(VMFlags.AFTER_BRANCH)
|
||||
opcode = self.mem[self.pc.value]
|
||||
opcode = self.mem[self.pc.value * 4]
|
||||
opdesc = self._fetch_opcode_desc(opcode)
|
||||
args = self._parse_arguments(opdesc)
|
||||
# По какой-то причине адрессация работает
|
||||
# так, будто мы на 1 слово впереди опкода
|
||||
self.pc = c_uint32(self.pc.value + 1)
|
||||
# сбрасываем флаг AFTER_BRANCH
|
||||
self._vm_flags &= ~(VMFlags.AFTER_BRANCH)
|
||||
self._run_callback(opdesc, args)
|
||||
if VMFlags.EXPANDED_INSTR in self._vm_flags:
|
||||
self.pc = c_uint32(self.pc.value + 1)
|
||||
|
||||
def continue_(self) -> None:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user