Доброго времени суток! Дабы не заплесневеть, решил попробовать написать что-нибудь на асме и собрать gas'ом. Вроде бы ничего сложного — распихиваю аргументы по регистрам и вызываю int 0x80. Для write работает. Захотел вызвать, к примеру, getcwd, полез в unistd_x32.h и unistd_64.h. Там написан номер 79 для x86_64 и 79 + 0x40000000 для x86 на 64-битной системе (из unistd.h). Это место непонятно мне. Я собираю с флагом -m32 и вот какой номер будет у системного вызова в этом случае? При указании 79 strace говорит не помню точно какой вызов делается то ли poll() то ли nanosleep(), короче долго я ковырялся, так и не получилось. Или действительно писать эти жуткие числа 0x40000000 + N? Извиняюсь за немного сумбурное сообщение, просто ночь
Всем заранее спасибо!