PowerPC反汇编器输出与操作码不同

时间:2016-02-28 07:49:47

标签: computer-architecture disassembly powerpc opcode

为什么powerpc的操作码与反汇编程序输出的操作码不同?

Diassambler Output

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.但是,在操作码表上,它表示操作码为18.为什么会这样?我是否错误地解释了操作码?

1 个答案:

答案 0 :(得分:2)

18是十进制的,是顶部字节0..7的位0..5。所以你需要将它向上移动2并转换为十六进制。然后你得到0x48。即

% printf %x $((18 << 2))
48 
%