Просмотр поста

.
Swank
Сексуальность валенка

Перекусил немного.
Я обычно код тестирую на своём arm ноуте, да и пишу тамже, он у меня как тестовый полигон, поэтому я привык к arm синтаксису GNU Assembler, x86 не юзаю поэтому мне намного комфортней показывать примеры с arm ассемблером, последующие Ассемблерные вставки для arm процессора, переделать их вообще не сложно
Итоговая рабочая программа для arm будет выглядеть так:

void _start() {

    //Тут код программы

    // Выход
    __asm__(
        "mov  r0, #0;"  // Возращаемое значение - 0
        "mov  r7, #1;" // Номер системного вызова - 1 (exit)
        "swi  0;" // Системный вызов ядра
    );
}

Можно скомпилировать, только обязательно с опцией -nostdlib, эта опция убирает glibc
И запустить, все что сделает программа это за пуститься и остановится с кодом 0
Чего ж мы hello world то не написали, на самом деле просто вывести hello world нельзя, функции printf и puts, отсутствуют, да и вообще у нас есть всего несколько функций, одна из них __asm__ которая делает вставку кода на асме, абсолютно все нужно делать самому, все что у нас есть это системные вызовы, все делается через них, linux имеет более трёхсот системных вызовов и exit среди них.
Короче все, навеселился.
Пошел отдыхать