PowerPC 反汇编器输出与操作码不同
PowerPC disassembler output different from opcodes
为什么 powerpc 的操作码与反汇编器输出的不同?
Disassembly of section .text:
00000000100000b0 <main>:
100000b0: 38 22 ff f8 addi r1,r2,-8
100000b4: 48 00 00 09 bl 100000bc <_main>
100000b8: 48 00 00 58 b 10000110 <exit>
例如,对于指令,"b"前6位包含十六进制值48。但是,在操作码table上,它说操作码是18。这是为什么?我是否错误地解释了操作码?
18 是十进制的,是最高字节 0..7 的位 0..5。所以你需要将它向上移动 2 并转换为十六进制。然后你得到 0x48。即
% printf %x $((18 << 2))
48
%
为什么 powerpc 的操作码与反汇编器输出的不同?
Disassembly of section .text:
00000000100000b0 <main>:
100000b0: 38 22 ff f8 addi r1,r2,-8
100000b4: 48 00 00 09 bl 100000bc <_main>
100000b8: 48 00 00 58 b 10000110 <exit>
例如,对于指令,"b"前6位包含十六进制值48。但是,在操作码table上,它说操作码是18。这是为什么?我是否错误地解释了操作码?
18 是十进制的,是最高字节 0..7 的位 0..5。所以你需要将它向上移动 2 并转换为十六进制。然后你得到 0x48。即
% printf %x $((18 << 2))
48
%