Соглашение вызова.
Поясните, что за соглашение вызова используется по умолчанию?
test.c:
#include <stddef.h>
void test(int p1,void* p2,int p3, int p4, void* p5, void* p6)
{
}
int main(int argc, char** argv) {
test(-1,NULL,0,0,NULL,NULL);
return 0;
}
$ gcc -O0 -m64 test.c -o a.out
$ objdump -M intel -d -j .text a.out | grep -E "call(.+)test" -B 6
68b: 41 b9 00 00 00 00 mov r9d,0x0
691: 41 b8 00 00 00 00 mov r8d,0x0
697: b9 00 00 00 00 mov ecx,0x0
69c: ba 00 00 00 00 mov edx,0x0
6a1: be 00 00 00 00 mov esi,0x0
6a6: bf ff ff ff ff mov edi,0xffffffff
6ab: e8 b0 ff ff ff call 660 <test>