Вот хочу написать программу которая просто запустится и завершится без ошибки сегментации.
Если я просто пишу функцию 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
Комментариев нет:
Отправить комментарий