#include <stdio.h> //double Double2(double result); int main(void) { double result; printf("start\n"); result = Double2(2); printf("%lf\n",result); return 0; } double Double2(double result) { return result * result; } |
#include <stdio.h> double Double2(double result); int main(void) { double result; printf("start\n"); result = Double2(2); printf("%lf\n",result); return 0; } double Double2(double result) { return result * result; } |
.file "test83.c" .version "01.01" gcc2_compiled.: .section .rodata .LC0: .string "start\n" .LC1: .string "%lf\n" .text .align 4 .globl main .type main,@function main: pushl %ebp movl %esp,%ebp subl $24,%esp addl $-12,%esp pushl $.LC0 call printf addl $16,%esp addl $-12,%esp pushl $2 call Double2 addl $16,%esp movl %eax,%eax movl %eax,-12(%ebp) fildl -12(%ebp) fstpl -8(%ebp) addl $-4,%esp fldl -8(%ebp) subl $8,%esp fstpl (%esp) pushl $.LC1 call printf addl $16,%esp xorl %eax,%eax jmp .L2 .p2align 4,,7 .L2: movl %ebp,%esp popl %ebp ret .Lfe1: .size main,.Lfe1-main .align 4 .globl Double2 .type Double2,@function Double2: pushl %ebp movl %esp,%ebp fldl 8(%ebp) fmull 8(%ebp) jmp .L3 .p2align 4,,7 .L3: movl %ebp,%esp popl %ebp ret .Lfe2: .size Double2,.Lfe2-Double2 .ident "GCC: (GNU) 2.95.3 20010315 (release)" |
.file "test84.c" .version "01.01" gcc2_compiled.: .section .rodata .LC0: .string "start\n" .LC2: .string "%lf\n" .align 8 .LC1: .long 0x0,0x40000000 .text .align 4 .globl main .type main,@function main: pushl %ebp movl %esp,%ebp subl $24,%esp addl $-12,%esp pushl $.LC0 call printf addl $16,%esp addl $-8,%esp fldl .LC1 subl $8,%esp fstpl (%esp) call Double2 addl $16,%esp fstpl -8(%ebp) addl $-4,%esp fldl -8(%ebp) subl $8,%esp fstpl (%esp) pushl $.LC2 call printf addl $16,%esp xorl %eax,%eax jmp .L2 .p2align 4,,7 .L2: movl %ebp,%esp popl %ebp ret .Lfe1: .size main,.Lfe1-main .align 4 .globl Double2 .type Double2,@function Double2: pushl %ebp movl %esp,%ebp fldl 8(%ebp) fmull 8(%ebp) jmp .L3 .p2align 4,,7 .L3: movl %ebp,%esp popl %ebp ret .Lfe2: .size Double2,.Lfe2-Double2 .ident "GCC: (GNU) 2.95.3 20010315 (release)" |