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