Сборка и системные вызовы
У меня возникли проблемы с пониманием более сложных системных вызовов в сборке. Я написал системный вызов exec, и он работал отлично
.bss
.text
.globl _start
_start:
#exit(0) system call
movl $1, %rax
movl $0, %rbx
int $0X80
Хотя я немного застрахован и не смог найти информацию о том, как вы помещаете строки в регистр. Так что в качестве примера я хотел сделать системный вызов exec, и для его первого параметра требуется имя файла для запуска, и я хочу запустить "/ Бен / Баш», но как мне получить это в rbx. Откуда я вообще знаю, что мне нужно использовать rbx, в X86 я знаю, что буду использовать ebx, это то же самое отношение в amd64 ebx = rbx, ecx = rcs и т. Д.
int execve (const char * filename, char * const argv [], char * const envp []);
Спасибо всем