为什么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.但是,在操作码表上,它表示操作码为18.为什么会这样?我是否错误地解释了操作码?
答案 0 :(得分:2)
18是十进制的,是顶部字节0..7的位0..5。所以你需要将它向上移动2并转换为十六进制。然后你得到0x48。即
% printf %x $((18 << 2))
48
%