Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 20:35   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
Радость Сравнение ассемблерных трансляторов

Вот решил углубить свои знания в ассемблере. Задумался, а какой ассемблер сейчас лучше изучать?
вот нашел в нете сайт где приводят сравнения трансляторов.
http://www.insidepro.com/kk/108/108r.shtml
вот выдержка из статьи, самая суть.
Цитата:
MASM (Macro Assembler) - стандарт де-факто при программировании под Windows 9x/NT;

TASM (Turbo Assembler) - медленно разлагающийся труп, пригодный только для MS-DOS;

Lazy Assembler - реинкарнация TASMа с поддержкой новых команд процессора;

FASM (Flat Assembler) - неординарный и весьма самобытный, но, увы, игрушечный ассемблер;

NASM (Netwide Assembler) - хороший ассемблер под Linux/BSD с Intel-синтаксисом;

YASM (Yet another assembler) - усовершенствованный вариант NASM'а;

HLA (High Level Assembly Language) - очень высокоуровневый ассемблер, на любителя.
Для себя решил, что буду кывыряться в Masm, дабы буду писать под винду.
Хотелось бы услышать мнения бывалых.
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 03.02.2010, 21:10   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Статья старая, FASM кроссплатформенный, имеет более простой синтаксис (IDEAL), постоянно обновляется, препроцессор навороченный, макросы даже мощнее MASM, умеет собирать СОМ, MZ, PE, ELFы, EFI-PE, есть модификации под ARM, 'сырые' бинарные файлы. Советую обратить внимание на него
пыщь
JTG вне форума Ответить с цитированием
Старый 03.02.2010, 21:17   #3
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

А с точки зрения документации на русском? Её много?
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 03.02.2010, 22:49   #4
d9m0n
Пользователь
 
Регистрация: 03.03.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от veter_s_morya Посмотреть сообщение
А с точки зрения документации на русском? Её много?
На wasm.ru куча документации по MASM-у. Там же можно скачать руководство по FASM на русском (правда, не самой свежей версии)
d9m0n вне форума Ответить с цитированием
Старый 04.02.2010, 04:44   #5
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

Если собираешся писать под Win32 (да и Win64), то как по мне лучше всего конечно же MASM - как ни как он родной для Windows систем... TASM без спору хорошый (сам на нем не пишу, но Borland по Builder-у уважаю), но для серьёзных вещий под Win32 только MASM...

Хотя они же не очень и отличаются... зная один не вопрос перейти на другой asm (под Win32 конечно, синтаксис Unix систем таки другой...)
|{ot вне форума Ответить с цитированием
Старый 04.02.2010, 04:54   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

veter_s_morya
Еще есть GoAsm (Gordon Assembler by Jeremy Gordon)
POAsm (Pelle Orinius Macro Assembler by Pelle Orinius)
RosAsm (Assembler for ReactOS by Betov)
WASM (Open Watcom Assembler)
T0A (The 0ok Assembler by Benjamin "BeRo" Rosseaux)
и все они "неординарные и весьма самобытные"
Mikl___ вне форума Ответить с цитированием
Старый 05.02.2010, 20:10   #7
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

JTG, попался мне в руки fasm, хотя планировал на masm. Интересная вещица, даже бросать не хочется. Я вот подумал, может начать кодить параллельно в двух асмах.
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 06.02.2010, 13:10   #8
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

veter_s_morya Масм и Fasm существенно не различаются, поэтому чтобы набить руку нужно переписывать проекты с одного асма на другой. Лично я начинал с Tasm, затем Nasm, Masm, Fasm. И все же ИМХО начинать с MASM/TASM под Dos, хотя и Fasm можно писать под Дос
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 07.02.2010, 18:24   #9
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

TASM это прошлое, толком ничего не поддерживает и был заброшен разработчиком (Borland) лет 10 назад. Не рекомендую им пользоваться и уж тем более новичкам.

veter_s_morya, FASM это будущее.
Почему я выбрал этот компилятор?
1. Чистый синтаксис, без лишних и рудиментарных дирректив от которых никакого толку (например, .386, offset и ещё куча).
2. Полный контроль над расположением данных в файле. При программировании под windows мы имеем полный контроль над секциями в PE-файле (можно указать имя и любые атрибуты).
3. При компиляции не надо никаких LIB файлов, от которых в большинстве случаев тоже никакого толку. (при программировании под Windows по любому надо использовать функции из KERNEL32.DLL)
4. У него есть свой собственный редактор. Но более важно что при компиляции через командную строку не надо указывать кучу параметров чтобы прога скомпилилась как надо. Надо указать просто путь к файлу исходника, всё остальное задаётся в самом исходнике.
5. Мощнейший макросный движок!
6. Поддерживает почти все команды x86-64.

Главное отличие FASM и MASM состоит в использовании имен переменных.
Например:
var1 dd 0
в MASM
mov eax, var1 и mov eax, [var1] одно и тоже! в eax будет помещено значение переменной var1. т.е. если не указаны квадратные скобки, то всё равно считается что они указаны. Именно это и не нравится
в FASM
mov eax, var1 ; в eax будет указатель на var1
mov eax, [var1] ; в eax будет помещено значение переменной var1
в MASM чтобы получить указатель надо написать offset

Последний раз редактировалось rpy3uH; 07.02.2010 в 20:02.
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение данных GX_h10 SQL, базы данных 1 29.12.2009 12:49
Сравнение 2 файлов ForzaJuve Общие вопросы Delphi 9 09.06.2009 23:34
C#: Сравнение дат Veiron Общие вопросы .NET 1 08.06.2009 23:32
компоновка ассемблерных модулей с программи С++ brainFuck Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 08.09.2008 09:10
Нужна помошь в реализации ассемблерных вставок!!! Cherpak Помощь студентам 1 02.06.2008 13:44