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 :

  1. %rdi pour le premier argument
  2. %rsi pour le deuxième argument
  3. %rdx pour le troisième argument
  4. %r10 pour le quatrième argument
  5. %r8 pour le cinquième argument
  6. %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