最近在学习深入理解计算机系统,捡了捡之前丢掉的汇编语言。不过那时候学习的是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吧:)