Форум программистов, компьютерный форум, киберфорум
Низкоуровневое программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/33: Рейтинг темы: голосов - 33, средняя оценка - 4.97
 Аватар для faNtOm2004
6 / 4 / 2
Регистрация: 28.07.2019
Сообщений: 54

Какой компилятор выбрать FASM, MASM или TASM?

31.07.2019, 01:38. Показов 8137. Ответов 16

Студворк — интернет-сервис помощи студентам
Здравствуйте. Посоветуйте мне какой компилятор лучше выбрать. FASM, MASM или TASM.
Какой из них сильнее, какой проще? Какой компилятор наиболее предрасположен к процессору?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2019, 01:38
Ответы с готовыми решениями:

MASM, TASM, FASM: что выбрать для программирования в ядре
Какой асемлер выбрать для проганья в едре? вынь

Какие базовые операции мне надо проделать чтобы переписать небольшой код например MASM для использования в FASM?
В ентернетах очень много различных примеров для различных ассемблеров, я решил что буду изучать FASM, но часто встречаю решения моих задач...

Компиляторы MASM, FASM, TASM - в чем их различия
День добрый. Ребята я вот начинаю изучать язык программирования ассемблер, и и не могу понять различие между ними(уже запутался). Какой...

16
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
31.07.2019, 20:22
Лучший ответ Сообщение было отмечено faNtOm2004 как решение

Решение

НЕ TASM - однозначно. Разве что, после освоения ассемблера слегка поупражняться в простеньких задачках для DOS.

MASM или FASM - без разницы. На этапе обучения различия лишь в некоторых декорациях (служебных словах компилятора).
При нужде - переход будет несложным.
1
 Аватар для faNtOm2004
6 / 4 / 2
Регистрация: 28.07.2019
Сообщений: 54
31.07.2019, 21:24  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
MASM или FASM - без разницы
Спасибо за совет
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
31.07.2019, 23:39
TASM был хорош во времена MS-DOS. И для программирования под MS-DOS был гораздо лучше тогдашнего MASM. И был удобнее и генерил существенно меньшие по размерам исполняемые файлы, что благодатным елеем изливалось на души ассемблерщиков. Поэтому я по привычке программульки для MS-DOS пишу на MS-DOS-овском же TASM 2.x или 3.x
А дальше произошла такая петрушка - Borland выпустила неудачные варианты TASM 4.x и 5.x под Винды (прям таки оскорбляющие сокровенные чувства ассемблерщиков пухлыми размерами своих исполняемых файлов) чем испортила ранее великолепный продукт. А Microsoft внаглую вставила все удачные фишки старого TASM-а в свой MASM, да еще и своих новых сверху насыпала. И от TASM-а все отвернулись.
2
Невнимательный
 Аватар для ft4l
2835 / 1253 / 357
Регистрация: 08.02.2013
Сообщений: 7,298
Записей в блоге: 2
01.08.2019, 00:20
как вариант as из gcc .) с флагом -msyntax=intel (синтаксис att жутко непонятный )) )
++ gcc, mingw-w64
1
 Аватар для faNtOm2004
6 / 4 / 2
Регистрация: 28.07.2019
Сообщений: 54
01.08.2019, 01:39  [ТС]
Я сам, когда начал изучать ассемблер использовал TASM. И на тот момент его мне было достаточно.
А потом первое, что - это недостаток include и lib файлов, а также сложность импортирования WinAPI в программу.
Я перешёл на FASM. Но потом заметил, что на MASM намного легче работать с Win32 чем на FASM, поэтому скорее всего дальше буду изучать и MASM тоже. Вместе с FASM`ом.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
07.08.2019, 09:17
faNtOm2004,
а еще есть NASM, PoASM, YASM, JWASM
1
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
07.08.2019, 11:13
Цитата Сообщение от Mikl___ Посмотреть сообщение
PoASM
Что это за нафиг ? А ... он MASM-совместимый. Ну значит в плане особого синтаксиса его нет.

Добавлено через 57 секунд
Цитата Сообщение от Mikl___ Посмотреть сообщение
JWASM
MASM-совместимый. Так-что и этого нет.

Добавлено через 2 минуты
Цитата Сообщение от Mikl___ Посмотреть сообщение
NASM
Не вдавался в подробности, но по первому впечатлению показался передиранием FASM-а.

Добавлено через 1 минуту
Цитата Сообщение от Mikl___ Посмотреть сообщение
YASM
А этот по синтаксису NASM и это явно объявлено. Т.е. и этого нет.


Ну и итого MASM (и сюда-же tasm как историческая попытка сделать masm лучше) как проявление классицизма, FASM как искра гения (и сюда-же nasm как подражание оному) и еще Unix-овый as с синтаксисом AT&T как проявление непонятного чего. Остальное не есть предмет освоения, а те-же яйца вид сбоку.
3
 Аватар для faNtOm2004
6 / 4 / 2
Регистрация: 28.07.2019
Сообщений: 54
07.08.2019, 22:12  [ТС]
Спасибо всем за советы !!!
Обязательно к ним прислушаюсь !!!
0
222 / 19 / 0
Регистрация: 15.08.2016
Сообщений: 47
14.12.2021, 10:51
Может кому-то будет важно:

FASM - не создает .obj файлов, т.е. нельзя его использовать для объединения модулей с проектом на C/C++. Он наверное удобен для создания отдельных небольших программ/.bin-файлов, загрузчиков. Свой синтаксис.

NASM - свой синтаксис, очень специфичный. Препроцессор не-TASM-совместимый. Мне совсем не понравился.
YASM - тоже самое.

EUROASM - странный и не развивается.

Asmc - JWasm fork, не пробовал.

GAS (as) - специфичный ассемблер, но если не для x86 - то особо альтернатив нет. Я его не использую.

TASM - хорош, особенно для DOS, но в общем-то не поддерживается сейчас. Раньше всегда использовал, сейчас - перехожу на другой.

MASM - наверное хорош, но я его не использую, т.к. входит в платные продукты (мне нельзя).

POASM - этот бесплатный (входит в комплект Pelles C). Вызов похож на MASM.

UASM - довольно хорошая переработка WASM (WATCOM assembler). Есть версия для x32/x64 систем. Может сразу создавать .bin или .exe. Может создавать .obj для объединения модулей с проектом на C/C++. Содержит ошибки (все хочу связаться с разработчиками, но времени нет присылать багрепорты). Его использую для новых проектов.
0
Невнимательный
 Аватар для ft4l
2835 / 1253 / 357
Регистрация: 08.02.2013
Сообщений: 7,298
Записей в блоге: 2
14.12.2021, 12:07
Цитата Сообщение от XRS Посмотреть сообщение
FASM - не создает .obj файлов
Это не так.
Скачиваю с http://flatassembler.net/download.php fasmw17328.zip
распаковываю, перемещаю к себе в папку c:\C\fasmw\EXAMPLES\MSCOFF\MSCOFF.ASM
создаю там-же такой main.c
C
1
2
3
4
5
extern void demo(void);
 
void EntryPoint() {
    demo();
}
компилирую оба файла и собираю
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
c:\temp\test>cl -c main.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.
 
main.c
 
c:\temp\test>fasm MSCOFF.ASM
flat assembler  version 1.73.28  (1048576 kilobytes memory)
3 passes, 277 bytes.
 
c:\temp\test>link /ENTRY:EntryPoint /subsystem:windows main.obj mscoff.obj bufferoverflowu.lib user32.lib
Microsoft (R) Incremental Linker Version 9.00.30729.207
Copyright (C) Microsoft Corporation.  All rights reserved.
запускаю main.exe и вижу MessageBox
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
14.12.2021, 16:33
NASM поддерживает два синтаксиса Intel и AT&T. Синтаксис Intel ближе к FASM, а синтаксис AT&T ближе к gas. Препроцессор и макросредства очень слабы (в сравнении с MASM и тем более FASM), но развиваются от версии к версии. Я был приятно удивлён, когда не решив какую-то задачку в версии 5-летней давности, легко справился в свежей версии.
Хорошие примеры макросов идут в составе SASM.

NASM присутствует в составе online-assembler. Поэтому его используют в обучении и последнее время много вопросов по применению NASM для Linux в этих online-assembler.
0
222 / 19 / 0
Регистрация: 15.08.2016
Сообщений: 47
15.12.2021, 08:42
ft4l
Вы правы, на счет FASM я ошибся. Создает .obj.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
17.12.2021, 09:09
Цитата Сообщение от XRS Посмотреть сообщение
UASM - довольно хорошая переработка WASM (WATCOM assembler).
Стоит добавить, что UASM MASM-совместимый, т.е. он компилит исходники на MASM.

Цитата Сообщение от XRS Посмотреть сообщение
GAS (as) - специфичный ассемблер, но если не для x86 - то особо альтернатив нет.
Почему нет альтернатив? Есть свои ассемблеры под многие платформы. А ещё есть FASMARM для компиляции ARM на x86, есть FASMG, который поддерживает AVR и некоторые другие платформы (не помню точно какие), а также позволяет создавать правила для любых других платформ.

Цитата Сообщение от XRS Посмотреть сообщение
NASM - свой синтаксис, очень специфичный.
Не более специфичный, чем у FASM
Всё дело вкуса и привычки, за рубежом пользуется очень большой популярностью. В СНГ – больше FASM.
По сути, Intel-синтаксис инструкций почти везде одинаковый (наибольшие отличия – в синтаксисе адресации памяти и взятия адреса переменной). Главные отличия ассемблеров – директивы, макросы и т.п.

Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
NASM поддерживает два синтаксиса Intel и AT&T.
Вы что-то путаете. NASM не поддерживает AT&T-синтаксис.

Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Препроцессор и макросредства очень слабы
Ну я бы не сказал. У NASM тоже есть свои фишки, которых нет ни в FASM, ни и MASM.
У FASM свой головняк тоже есть, главным образом связанный с поэтапным препроцессингом (к примеру, такая конструкция не сработает: if something / include 'file1.inc' / else / include 'file2.inc' / end if, приходится делать такое через match, который не столь гибок, например, при работе с числовыми значениями).
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8644 / 4479 / 1669
Регистрация: 01.02.2015
Сообщений: 13,883
Записей в блоге: 11
17.12.2021, 18:37
Цитата Сообщение от Jin X Посмотреть сообщение
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
NASM поддерживает два синтаксиса Intel и AT&T
Вы что-то путаете. NASM не поддерживает AT&T-синтаксис.
Да, признаю, ошибся.
Было воспоминание, что из среды SASM запускал что-то в AT&T синтаксисе, а так как с этой средой у меня ассоциация с NASM, то и перепутал.

Конечно же, NASM поддерживает только Intel синтаксис.
0
97 / 5 / 0
Регистрация: 10.10.2016
Сообщений: 7
02.01.2023, 17:23
Использую UASM. У него довольно много багов, например, мой проект XRayExtensions(XRayExtensions NanoBot) компилирует лишь одна версия 2.46, у других выскакивает ошибка, в новых именно!!! Преимущество UASM, исходники доступны и написаны на Си(я смог с компилировать, и даже пытался править ошибки в версии 2.46). А вот этот ваш FASM не зашёл, разраб конечно гений, но когда я увидел исходники, пришёл в неописуемый ужас, если его задавит, то работать с исходниками смогут единицы.
И ещё, UASM не является 100% совместимым MASM, не надо себя обманывать, много кода который сможет правильно с компилироваться только после правки кода. Например оригинальный XRayExtensions от команды, не компилируется, выскакивает ошибка по памяти, спасибо комитёру!
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
03.01.2023, 17:25
Introtech, напишите разрабам об ошибке. Я писал как-то, исправили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2023, 17:25
Помогаю со студенческими работами здесь

Какие существуют среды программирования Assebler'a для процессоров ix86 помимо tasm, fasm, masm
Какие существуют среды программирования Assebler'a для процессоров ix86 помимо tasm, fasm, masm? Посоветуйте литературу по этому вопросу?...

TASM, MASM, или что?
Помогите плиз, нужно срочно какой-нибудь ассемблер компилятор!! С Р О Ч Н О!! Пожалуйста помогите жду!

Есть ли компиляторы Tasm или Masm для 64-разрядных систем
Есть ли компиляторы Tasm или Masm для 64-разрядной с-мы??? если есть просьба скинуть...

Перевести программу из FASM в MASM32 - есть автоматический конвертер?
Ребят обращаюсь вот по какому вопросу , я сделал курсовой проект в FASM , с ним более менее знаком и как по мне он более прост, при здаче...

MASM,TASM
Очевидно, что программирование на макроассемблере легче для восприятия чем на уровне команд процессору, но значит ли это что екзешники в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru