Страницы

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

воскресенье, 22 декабря 2019 г.

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

#c #ассемблер #arm


Вот хочу написать программу которая просто запустится и завершится без ошибки сегментации.

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


Ответы

Ответ 1



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

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

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