привет! такой вот вопрос родился, эксперементирую с вызовом сишных функций, и не совсем понятно почему в 32битной версии где у меня glibc 2.0 код скажем вот такой:
push ebp
mov ebp, esp
sub esp, 10
mov DWORD [ebp-4], 0xfff
push DWORD [ebp-4]
push DWORD msg
call printf
а при 64 бит компиляции (версия glibc правда 2.2.5) надо еще вот это добавлять перед вызовом printf:
mov rdi, msg
mov rsi, [rbp]
mov al,0
иначе segmentation fault и ничего не работает. Другой стандарт вызова или что?