ASM: MASM, NASM, FASM?
Я сделал программирование сборки ARM, и я хотел бы изучить Intel Assembler. Я продолжаю слышать все эти разные F/M/N/ASM, но я не уверен, как они связаны с тем, чего я хочу достичь?
Может кто-нибудь, пожалуйста, помогите мне определить, что мне нужно, чтобы научиться программировать низкий уровень в архитектуре Intel? Я не совсем понимаю, как "разные ассемблеры" коррелируют, тем более, с x86, IA64, AMD64/x86-64 и т.д.?
Если это поможет, мне удобнее использовать Eclipse и Visual Studio 08/10 IDE.
Ответы
Ответ 1
MASM
(Microsoft Assembler) - популярный ассемблер для Windows. MASM
предназначен для 16-разрядных и 32-разрядных приложений (x86
). ML64
- для 64-разрядных источников (AMD64/x86-64
)
NASM
(Netwide Assembler) - популярный ассемблер для Linux, но доступен на Windows. NASM поддерживает 16-разрядные, 32-битные и 64-разрядные программы.
FASM
(Flat Assembler) доступен как для Windows, так и для Linux. FASM также поддерживает как 32-разрядные, так и 64-разрядные программы.
Итак, я бы предпочел выбрать MASM
в соответствии с вашими требованиями.
Ответ 2
Просто, чтобы рассказать об этом, RosAsm - это только 32-битный ассемблер, у которого есть несколько интересных точек, таких как
- интегрированная среда IDE, которая самокомпилируется с доступным исходным кодом
- вдохновленный NASM синтаксис
- мощная макросистема для языкового дизайна высокого уровня.
- особенности хранения исходного кода внутри созданных файлов .exe и .dll(в разделе PE).
Что касается поддержки 64 бит, у RosAsm нет ни одного, но один из ее участников в настоящее время работает над переписыванием 64 бит (BUAsm, ассемблер Bottom-Up)