Połączenia systemowe i systemowe

Mam trochę problemów ze zrozumieniem bardziej złożonych wywołań systemowych podczas montażu. Napisałem wywołanie systemowe exec i działało świetnie

 .bss

.text

.globl _start

_start:

#exit(0) system call

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

Chociaż jestem trochę ubezpieczony i nie udało mi się znaleźć informacji dotyczących sposobu umieszczania napisów w rejestrze. Jako przykład chciałem wykonać wywołanie systemowe exec, a jako pierwszy parametr potrzebuje nazwy pliku do uruchomienia i chcę uruchomić "/ bin / bash", ale jak to uzyskać w rbx. Skąd mam wiedzieć, że muszę używać rbx, w X86 wiem, że używałbym ebx, czy jest to ten sam związek w amd64 ebx = rbx, ecx = rcs itd.

int execve (const char * nazwa_pliku, char * const argv [], char * const envp []);

Dziękuje wszystkim

questionAnswers(2)

yourAnswerToTheQuestion