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