#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
Комментариев нет:
Отправить комментарий