天天看點

彙編和反彙編的差別

在linux系統下編寫如下代碼:

彙編和反彙編的差別

通過指令:gcc -S main.c 将生成main.s檔案即就彙編檔案(在上篇部落格我已提到過)。

彙編和反彙編的差別

通過指令:gcc -c main.c 生成main.o(二進制檔案)

再通過指令:objdump -d main.o生成反彙編

彙編和反彙編的差別

反彙編是基于機器代碼的檔案中的位元組序列來确定彙編的代碼。

左邊為位元組序列值,右邊為反彙編代碼。

通過上面的比較可以得出下面結論;

1、從代碼上看彙編和反彙編的指令基本一樣。

2、彙編操作的立即數是十進制,二反彙編操作的立即數是十六進制(即就是左邊序列的某個值)。

3、彙編和反彙編操作(寄存器或存儲器)的位址也不同。