سؤال

ويمكن لبعض واحد يوفر استخدام مثال fastcall للاستخدام مع دول مجلس التعاون الخليجي؟ إذا كان ذلك ممكنا هل يمكن تقديم الدعوة تعادل بدون استخدام fastcall وشرح كيف سيكون مختلفا؟

هل كانت مفيدة؟

المحلول

وليس هناك فرق في طريقة ستظهر مكالمة ظيفة معينة في التعليمات البرمجية C. والفرق الوحيد هو في تعريف الدالة. و دول مجلس التعاون الخليجي دليل لديها مزيد من التفاصيل.

$ cat fastcall.c
extern void foo1(int x, int y, int z, int a) __attribute__((fastcall));
extern void foo2(int x, int y, int z, int a);

void bar1()
{
    foo1(99, 100, 101, 102);
}

void bar2()
{
    foo2(89, 90, 91, 92);
}

$ gcc -m32 -O3 -S fastcall.c -o -
.
.
bar1:
.
.    
    movl    $100, %edx
    movl    $99, %ecx
    movl    $102, 4(%esp)
    movl    $101, (%esp)
    call    foo1
.
.
bar2:
.
.
    movl    $92, 12(%esp)
    movl    $91, 8(%esp)
    movl    $90, 4(%esp)
    movl    $89, (%esp)
    call    foo2
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top