一般来说,反汇编器会按顺序进行反汇编,但是,如果程序跳转到多字长指令的参数中,反汇编的结果就会和实际情况不符。
更多信息 内存地址 ...
示例(使用 6502 指令集,数字如无特殊说明均为十六进制)
内存地址 |
0 |
1 |
2 |
3 |
4 |
5
|
机器码 |
4C |
04 |
00 |
A9 |
A9 |
60
|
反汇编出的指令 |
JMP $0004 |
LDA #$A9 |
RTS
|
释义 |
跳转到地址 4 |
将 A9 载入累加器中 |
子程序返回
|
实际执行的指令 |
JMP $0004 |
这里不会被执行 |
LDA #$60
|
释义 |
跳转到地址 4 |
将 60 载入累加器中
|
关闭
这个例子过于简单,是可以被调试器检测到的。实际应用的花指令比这个更复杂,含有条件跳转指令。