最近在學習深入理解計算機系統,撿了撿之前丟掉的彙編語言。不過那時候學習的是8086單片機,從未接觸過gcc,現在想起來,總覺得別有一番風味。。。
不廢話了,編譯彙編語言文件的方法:
gcc -O1 -c xxx.s
這裏,優化速度可以選擇,O0(大o,零,每次寫這種符號總覺得很蛋疼Oo0000oooOO0)是不優化。如果使用的是64位的gcc,那麼,可以使用如下命令進行編譯:
gcc -O1 -m32 -c xxx.s
編譯完成之後會生成xxx.o的文件,然後就可以使用objdump工具查看機器碼啦:
objdump -d xxx.o
例如,xxx.s中寫了如下代碼:
xorl %edx, %edx
movl $0, %edx
機器碼如下:
0: 31 d2 xor %edx,%edx
2: ba 00 00 00 00 mov $0x0,%edx
簡單來說就是這樣,這是進入瞭解彙編和反彙編最基礎的東西,然後,enjoy一下yy的黑客feeling吧:)