Hallo, suse-amd64 ML! I have a question about assembler source(gas) on x86-64. It is a thing about a .s file's difference between x86 and x86-64. For example, as the following C source $ cat foo.c int main() { return 0; } When assemble it in 32bit(-m32) .file "foo.c" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax addl $15, %eax addl $15, %eax shrl $4, %eax sall $4, %eax subl %eax, %esp movl $0, %eax leave ret .size main, .-main .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.3.4 (pre 3.3.5 20040809)" And the following source is a asm source in 64bit. .file "foo.c" .text .globl main .type main, @function main: .LFB3: pushq %rbp .LCFI0: movq %rsp, %rbp .LCFI1: movl $0, %eax leave ret .LFE3: .size main, .-main .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "" .uleb128 0x1 .sleb128 -8 .byte 0x10 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .quad .LFB3 .quad .LFE3-.LFB3 .byte 0x4 .long .LCFI0-.LFB3 .byte 0xe .uleb128 0x10 .byte 0x86 .uleb128 0x2 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xd .uleb128 0x6 .align 8 .LEFDE1: .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.3.4 (pre 3.3.5 20040809)" A lot of label is added in 64bit mode. (.LFB3, .LCFI0, .LCFI1, .LFE3, .Lframe1, .LSCIE1, .LECIE1, .LSFDE1, .LASFDE1, .LEFDE1) Is there a person knowing what kind of meanings these are? Or is there a person knowing some site or book to be useful for? best regards eshsf