J'ai un peu de mal à comprendre les appels système plus complexes dans l'assemblage. J'ai écrit un appel système exec et il a très bien fonctionnéAssemblage et appels système
.bss
.text
.globl _start
_start:
#exit(0) system call
movl $1, %rax
movl $0, %rbx
int $0X80
Bien que je suis un peu et n'ont pas assurer pu trouver des informations concernant la façon dont vous mettez les chaînes dans un registre. Donc, par exemple, je voulais faire un appel système exec et comme son premier paramètre a besoin d'un nom de fichier pour s'exécuter et que je veux lancer "/ bin/bash", mais comment puis-je obtenir cela dans rbx. Comment puis-je même savoir que je dois utiliser rbx, en X86 je sais que j'utiliserait ebx, est-ce la même relation dans amd64 ebx = rbx, ecx = rcs, etc
int execve (const char * nom de fichier, char * const argv [], char * const envp []);
Merci à tous
Je comprends maintenant grâce. – Recursion
mais vous voulez dire .asciiz juste, donc son null se termine? – Recursion
Récursivité: Oui. –