En assembleur x86_64 avec la syntaxe AT&T (utilisée par l'assembleur GAS), le
registre %rdi est en effet utilisé pour passer le premier argument lors de
l'appel d'une fonction standard en C. Cependant, pour un syscall (appel
système) en x86_64, les registres utilisés pour passer les arguments sont
légèrement différents.
Pour un syscall, les registres utilisés sont :
- %rdi pour le premier argument
- %rsi pour le deuxième argument
- %rdx pour le troisième argument
- %r10 pour le quatrième argument
- %r8 pour le cinquième argument
- %r9 pour le sixième argument
Donc, pour répondre à la question : oui, %rdi est bien le premier paramètre
pour un syscall en assembleur x86_64 avec la syntaxe GAS.
documentation provided by: chatgpt