私は学生で、アセンブリ言語の勉強を始めたばかりです。理解を深めるために、C で簡単なコードを書き、それをアセンブリ言語に変換しました。ちょっと分からなかったのが意外でした。
コードは次のとおりです。
#include<stdio.h>
int main()
{
int n;
n=4;
printf("%d",n);
return 0;
}
対応するアセンブリ言語は次のとおりです。
.file "delta.c"
.section .rodata
.LC0:
.string "%d"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
andl $-16, %esp
subl $32, %esp
movl $4, 28(%esp)
movl $.LC0, %eax
movl 28(%esp), %edx
movl %edx, 4(%esp)
movl %eax, (%esp)
call printf
movl $0, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"
.section .note.GNU-stack,"",@progbits
これらはどういう意味ですか?