2016-02-28 49 views
0

爲什麼powerpc的操作碼與反彙編器輸出不同?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。這是爲什麼?我是否錯誤地解釋了操作碼?

+0

張貼外部鏈接作爲您的問題的主要來源不工作在這裏,因爲這些鏈接可以消失。在問題中發佈源代碼和反彙編的相關部分。 –

+0

@dwelch它不會讓我嵌入你不能剪切和粘貼一些rason – Bob

+0

的源代碼?這實際上只是鍵入... –

回答

2

18是十進制的,並且是頂部字節0..7的位0..5。所以你需要將它轉換爲2並轉換爲十六進制。然後你得到0x48。即。

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