您能向后读取ARMv7-M机器代码吗?

您能向后读取ARMv7-M机器代码吗?,arm,disassembly,Arm,Disassembly,或者,当随机选取半个字时,您是否可以分辨出它是thumb(16位)指令还是arm(32位)指令 背景:使用监控程序时(在好年头),您可以键入类似d$c00的内容,以显示从该地址开始的机器代码反汇编。然后,您可以向下或向上滚动以显示更多行 但是反汇编程序必须知道命令从哪里开始。这对于固定宽度的指令很容易。我想知道对于可变宽度(或固定但具有不同宽度)的指令如何/是否这样做 不,您不能,您必须按照执行顺序进行反汇编,并进一步进行仿真。与x86或6502或任何其他可变长度指令集上的问题相同。手臂/拇指是

或者,当随机选取半个字时,您是否可以分辨出它是thumb(16位)指令还是arm(32位)指令

背景:使用监控程序时(在好年头),您可以键入类似
d$c00
的内容,以显示从该地址开始的机器代码反汇编。然后,您可以向下或向上滚动以显示更多行


但是反汇编程序必须知道命令从哪里开始。这对于固定宽度的指令很容易。我想知道对于可变宽度(或固定但具有不同宽度)的指令如何/是否这样做

不,您不能,您必须按照执行顺序进行反汇编,并进一步进行仿真。与x86或6502或任何其他可变长度指令集上的问题相同。手臂/拇指是一样的/更糟的。这就是我想的。(我真的很喜欢pre thumb区域的32位arm代码…)你知道这是如何实现的吗?例如,通过c64/6510监控程序,比如在final cartridge/action replay中,你可以向上滚动?回溯直到非法操作码?不,你不能,你必须按照执行顺序反汇编,并进一步模拟。与x86或6502或任何其他可变长度指令集上的问题相同。手臂/拇指是一样的/更糟的。这就是我想的。(我真的很喜欢pre thumb区域的32位arm代码…)你知道这是如何实现的吗?例如,通过c64/6510监控程序,比如在final cartridge/action replay中,你可以向上滚动?回溯直到非法操作码?