Asamblea y llamadas al sistema

Estoy teniendo un poco de problemas para entender las llamadas más complejas del sistema en ensamblaje. Escribí una llamada al sistema ejecutivo y funcionó muy bien.

 .bss

.text

.globl _start

_start:

#exit(0) system call

        movl $1, %rax
        movl $0, %rbx
        int $0X80

Aunque estoy un poco seguro y no he podido encontrar información relacionada con la forma en que coloca las cadenas en un registro. Entonces, como ejemplo, quería hacer una llamada al sistema exec y como su primer parámetro necesita un nombre de archivo para ejecutarse y quiero ejecutar "/ bin / bash", pero ¿cómo obtengo eso en rbx? ¿Cómo puedo saber que tengo que usar rbx? En X86, sé que usaría ebx. ¿Es la misma relación en amd64? Ebx = rbx, ecx = rcs, etc.

int execve (const char * nombre de archivo, char * const argv [], char * const envp []);

Gracias a todos

Respuestas a la pregunta(2)

Su respuesta a la pregunta