مثال Fastcall دول مجلس التعاون الخليجي
-
21-08-2019 - |
سؤال
ويمكن لبعض واحد يوفر استخدام مثال 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
نصائح أخرى
لا تنتمي إلى StackOverflow