Настройка 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 шт):
Теоретически SASM можно настроить, чтобы в результате компиляции получался исполняемый файл для Linux, но такой исполняемый файл не будет работать из Windows, только из виртуальной машины с установленной ОС Linux.
Никакой эмуляции в SASM нет, поэтому код с системными вызовами Linux под Windows работать не будет.
Для ввода-вывода используются макросы, которые обращаются к функциям библиотеки libc, которые по-разному реализованы в разных ОС (например, под Linux берется GLIBC, под Windows - Microsoft Visual C Runtime (msvcrt)), собирается все в формат исполняемого файла, нативного для каждой системы, таким образом получается некая кроссплатформенность.