TCC , , . , main, , ret. IDK, , JMP , .
: TCC Tiny C Compiler. , . sub esp, 0: -, TCC , 0 . , main() . TCC sub esp,0 0 . ( ), imm32, , imm8. - 32- .
, , - . ++ - asm ( gcc/clang/icc , ). , asm ; gcc- - , . . Basile C?
JMP ( @MichaelPetch) : TCC ( ) , JMP .
NOP . , , /, . ( NOP - , , NOP , , TCC NOP , , , , , NOP. , gcc/clang/icc, -.)
@MichaelPetch , TCC , 10 , ( , , imm32). Windows ESP/RSP (4096 ), - 10 9 NOP. , asm.
xor-zero EAX ( , , , mov eax,0), . xor-zeroing // x86- , , , x86.
main:
xor eax,eax
ret
- EBP, pop ebp , leave , , ESP = EBP, mov esp,ebp leave . pop ebp - 1 , , leave, 2 3. (http://agner.org/optimize/, x86 tag wiki.) , gcc. ; , ESP pop ebx - .
TCC , ( ) . , - TCC / MB/ ( C) gcc3.2 -O0, ~ 9 P4.
, TCC braindead: , , , , , JMP ( sub esp, 0).