У меня есть кусок ассемблера который делает write system call (это правильно?) Череззапись системных вызовов Аргумент Регистры
call [email protected]
Прежде чем сделать это, значение rax
, адрес rsp
, edi
, rsi
и rdx
установлены/изменены.
Как узнать, какие регистры используются в качестве аргументов для вызовов записи или системных функций вообще?
Я думаю, что для записи это rsp
, edi
и rsi
поскольку в C
он принимает 3 аргумента:
ssize_t write(int fd, const void *buf, size_t nbytes);
Посмотрите его [здесь] (http://blog.rchapman.org/post/36801038863/linux-system-call-table-for-x86-64). – Michael