Код:
int main(){
clrscr();
memory_init();
}
Код:
x86_64-w64-mingw32-gcc -c -nostdlib -s -m64 -O2 src/boot.cpp -o obj/boot.o
Код:
.text:0000000000000000 ; Input MD5 : 540A6BAEA09554C7B0BDB2BE8601BFDD
.text:0000000000000000 ; Input CRC32 : E408638F
.text:0000000000000000 ; File Name : ...\boot.o
.text:0000000000000000 ; Format : COFF (Windows AMD64)
.text:0000000000000000 .686p
.text:0000000000000000 .mmx
.text:0000000000000000 .model flat
.text:0000000000000000 .intel_syntax noprefix
.text:0000000000000000 _text segment para public 'CODE' use64
.text:0000000000000000 public main
.text:0000000000000000 main proc near
.text:0000000000000000 sub rsp, 28h
.text:0000000000000004 call __main ; <=== Какого хрена?
.text:0000000000000009 call _Z6clrscrv ; clrscr(void)
.text:000000000000000E call _Z11memory_initv ; memory_init(void)
.text:0000000000000013 xor eax, eax
.text:0000000000000015 add rsp, 28h
.text:0000000000000019 retn
.text:0000000000000019 main endp
.text:000000000000001A align 20h
.text:000000000000001A _text ends
UNDEF:0000000000000030 extrn __main:near ; CODE XREF: main+4p
UNDEF:0000000000000034 extrn _Z6clrscrv:near ; CODE XREF: main+9p
UNDEF:0000000000000038 extrn _Z11memory_initv:near ; CODE XREF: main+Ep
Внимание на строку
.text:0000000000000004. Что происходит? Откуда, блин?
Причём, если назвать функцию, например, test, такого не происходит.