Настройка ide SASM на Windows 10

Периодически интересуюсь ассемблером под всякие UNIX OC (Ubuntu), которые запускаю в качестве виртуальной машины на VirtualBox. Но, для меня, это оказалось не очень удобно - сам я сижу на Windows 10. От чего решил пересесть на SASM, но там оказался компоновщик GCC (я думаю проблема в нём). Который пихает в код 32bit-ного NASM-а, всякие высокоуровневые Сишные функции (PRINT_STRING msg и NEWLINE) из файла %include "io.inc". И начинает ругаться если писать без этого. Собственно, как исправить и вернуть старую добрую простоту синтаксиса ?

%include "io.inc"

section .data
    msg db 'Hello, world!', 0

section .text
    global CMAIN
CMAIN:
    mov ebp, esp
    PRINT_STRING msg
    NEWLINE
    xor eax, eax
    ret

P.s: думал впихнуть компоновщик встроенный в систему Linux и ему подобные, но оказалась не так то просто ...


Ответы (1 шт):

Автор решения: insolor

Теоретически SASM можно настроить, чтобы в результате компиляции получался исполняемый файл для Linux, но такой исполняемый файл не будет работать из Windows, только из виртуальной машины с установленной ОС Linux.

Никакой эмуляции в SASM нет, поэтому код с системными вызовами Linux под Windows работать не будет.

Для ввода-вывода используются макросы, которые обращаются к функциям библиотеки libc, которые по-разному реализованы в разных ОС (например, под Linux берется GLIBC, под Windows - Microsoft Visual C Runtime (msvcrt)), собирается все в формат исполняемого файла, нативного для каждой системы, таким образом получается некая кроссплатформенность.

→ Ссылка