Страницы

Поиск по вопросам

пятница, 16 ноября 2018 г.

Как написать программу без libc?

Вот хочу написать программу которая просто запустится и завершится без ошибки сегментации.
Если я просто пишу функцию int _start() { return 0;} то получаю ошибку сегментации, насколько я понял в гугле то надо правильно завершить программу(пару строчек на ассемблере) но какие должны быть строчки для arm(я с arm ноутбука)?


Ответ

test.c
void _start() { asm( "mov r0, #0;" /* кладем в r0 0 -- код выхода */ "mov r7, #1;" /* кладем в r7 1 -- номер системного вызова exit */ "swi 0" /* системный вызов Linux */ ); }
Компиляция и выполнение:
$ gcc -nostdlib test.c -o test $ ./test

Комментариев нет:

Отправить комментарий