编译和反编译汇编语言

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

你可能感兴趣的:(优化,汇编,gcc,OO,语言,工具)