hello_world.c
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
运行gcc hello_world.c -S
会以汇编语言生成hello_world.s
文件。
hello_world.s
.file "hello_world.c"
.section .rodata
.LC0:
.string "Hello World"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl $.LC0, %edi
call puts
movl $0, %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"
.section .note.GNU-stack,"",@progbits
有没有办法找出生成代码的汇编语言类型(除了知道所有汇编语言的语法之外)?
参考我自己或其他不了解此事的人:
要使您的处理器架构运行following:
uname -p
答案 0 :(得分:2)
默认情况下,它是目标代码CPU的GNU汇编程序的AT&amp; T语法。可以选择改变它。