J'essayais de jouer un peu en assembleur. Ma compréhension est que les appels systèmes sont réalisés via une interruption générée par l'instruction syscall
.
Cependant, après avoir compilé un programme simple sur mon ordinateur en utilisant clang -S
:
int main() {
write(0, "HI", 2);
return 0;
}
L'assembleur pertinent généré est le suivant :
movl $0, -4(%rbp)
leaq L_.str(%rip), %rsi
movl $2, %edx
movb $0, %al
callq _write
Pourquoi est-ce ainsi ?
Existe-t-il un moyen de voir l'appel de système réellement effectué sur OS X ?