Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2008, 15:43   #1
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
Вопрос Чем отличается Tasm от Masm

Что лучше использовать по нашей жизни Tasm или Masm? Стдентам обычно читают Tasm (все старенькое). Про масам я моло что знаю. Посоветуйте, стоит ли изучать Масм?
------------------------------
Ум без разума –это беда!

Последний раз редактировалось rpy3uH; 17.06.2008 в 18:08.
veter_s_morya вне форума Ответить с цитированием
Старый 17.06.2008, 18:14   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

По-моему лучше всего FASM.
1. Максимальный набор поддерживаемых инструкций
2. Мощнейший макросный движок (по-моему, даже лучше чем в MASM)
3. Удобство пользования
4. Постоянное развитие
MASM и TASM отличаются только одной вещью: в TASM неполноценный макросный движок.
rpy3uH вне форума Ответить с цитированием
Старый 19.06.2008, 07:50   #3
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

по MASM и TASM я видел много литературы, а вот про фасм мне не попадалась. Я еще поищу в поисковиках материал про фасм. Значит буду держать ориентир на фасм. Если кто еще, народ, обладает информацией(или опытом), жду ваших мнений!
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 19.06.2008, 11:56   #4
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

FASM хороший, с исходниками. А потому у него есть будущее. TASM к сожалению больше не поддерживается Борландом. Все дизассемблеры выдают листинги в формате MASM. Вот тебе и пища к размышлению. Собственно изучать можно любой из них. Разница в принципе не особо большая. При знании любого из них разберешься с любым другим. И, кстати, документация на FASM есть тут http://flatassembler.net/docs.php, но вся на буржуйском наречии.

Последний раз редактировалось Баламут; 19.06.2008 в 13:42.
Баламут вне форума Ответить с цитированием
Старый 19.06.2008, 18:17   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

Цитата:
Сообщение от Баламут Посмотреть сообщение
И, кстати, документация на FASM есть тут http://flatassembler.net/docs.php, но вся на буржуйском наречии.
и на русском есть
rpy3uH вне форума Ответить с цитированием
Старый 20.06.2008, 07:52   #6
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
Все дизассемблеры выдают листинги в формате MASM.
Даже так...
Видимо масм начну...
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 22.06.2008, 19:12   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,808
По умолчанию

Цитата:
Сообщение от veter_s_morya Посмотреть сообщение
Видимо масм начну...
всё равно потом поймёшь, что без разницы что учить.
rpy3uH вне форума Ответить с цитированием
Старый 18.07.2008, 11:13   #8
Demonid7
 
Регистрация: 18.07.2008
Сообщений: 8
По умолчанию

Извиняюсь за некрофилию, но я здесь только недавно, а темка интересная :D
Цитата:
Сообщение от rpy3uH Посмотреть сообщение
По-моему лучше всего FASM.
1. Максимальный набор поддерживаемых инструкций
2. Мощнейший макросный движок (по-моему, даже лучше чем в MASM)
3. Удобство пользования
4. Постоянное развитие
1. И ни какого контроля соотвествия инструкций заданному типу процессора. Попробуй под 8086-й написать, на Fasm это геморой полный, особенно контроль условных переходов.
2. Действительно у Фасма самый мощный макродвижок. Но излишнее злоупотребление макросами снижает время компиляции.
3. Ага, особенно отсутствие поддержки многомодульности, что ограничивает написание на нем серьезных проектов. Некоторые конечно умудряются на нем реализовать пародию на многомодульность, но это довольно не удобно. А какой гемор с подключением *.lib из crt того же Си? А о каком серьезном проекте можно говорить, если нет удобных средств использовать чужие готовые либы? Зачем самому реализовать ту же поддержку текстовых файлов, если можно взять готовенькое из crt, зная наперед, что простой перекомпиляцией прога будет работать и под Линуксом и под виндой? Зачем самому писать компоненты интерфейса, если есть море написанных либрар? Не лучше ли взять инструмент посерьезнее, тот же masm или tasm?
4. И чего в нем развивается? Встроили оптимизацию инструкций? Или встроили поддержку высокоуровневых конструкций? Макроязык в нем расширяется, но пускай кто-нибудь попробует вставить оптимизацию условных переходов
В общем, FASM игрушка довольно несерьезная, применимая разве что для небольших программулек, для чего он и создавался.
Цитата:
Сообщение от rpy3uH Посмотреть сообщение
MASM и TASM отличаются только одной вещью: в TASM неполноценный макросный движок.
Неправда, отличий очень много. У тасма два режима - масм-совместимый и собственный - ideal, который по праву можно считать лучшим, избавляющим от непредсказуемого кода и делающий сорсы более читаемыми. А макросы, ну так плохому танцору извесно что мешает Там скорее проблема в другом - плохой документированности многих фич, в том числе и макроязыка.
К тому же тасм единственный, где введена поддержка ООП, порой существенно облегчающая жизнь, особенно в больших проектах. а поддержка новых инструкций легко реализуется макросами. И не смотря на давнее прекращение развития TASM имеет все то, что имеет и современный MASM, даже немного больше :D А его более "новый" вариант - Lazy Assembler, помимо совместимости с tasm обладает еще многими фичами, которых еще нет в большинстве ассемблеров, в частности удобные директивы оформления подпрограмм, или тот же Unicode.

И вообще, не понимаю тех, кто советует новичкам fasm, который совершенно не совместим по синтаксису с масм и тасм, на которых и базируются практически все книги, примеры и либы.

ЗЫ: последнюю версию фасма даже не смотрел, так что может какой из пунктов уже и не актуален
ЗЗЫ: никто не знает, где можно достать сорсы ассемблера, хотя бы похожего на tasm? Интерес чисто практический - развивать, поскольку есть неплохие идеи, а писать с нуля как то не хочется. Язык сорсов не имеет значения, но предпочитаю Си (без плюсов).
Demonid7 вне форума Ответить с цитированием
Старый 18.07.2008, 12:39   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Я лично тоже за FASM обоими руками.
Компилит и эльфы, сырые бинарники, и даже под ARM энтузиасты чёта натворили. Компилит 64-битный (AMD64 и EM64T) Что касается "допентиумных четвёрок" - мать его так, это уже история, если и нужно будет что-то древнее собрать - взять тот же TASM, тем более синтаксис ideal borland у обоих. Прекрасно справляется со всеми задачами при отсутствии "лишних" offset, assume... Поддерживает MMX, SSE, 3DNow!. Макроязык безподобен, позволяет реализовать офигительно функциональные псевдовысокоуровневые конструкции. Базовый функционал - работа с памятью, ввод-вывод, строки, потоки, преобразование типов - реализованы в Fasmlib. При желании собирает и obj, который можно скормить чужому линкеру.

Цитата:
И вообще, не понимаю тех, кто советует новичкам fasm, который совершенно не совместим по синтаксису с масм и тасм, на которых и базируются практически все книги, примеры и либы.
Новичкам легче осваивать FASM в плане того, что в нём "всё в одном флаконе". На форуме с периодичностью 2 раза в месяц появляются темы "не могу скомпилировать прогу - ругается на unresolved external symbol", постоянные проблемы с компоновщиком, теряют ключи/обязательные параметры/компилят под дос виндовые исходники и т.п. С FASM всё проще, нет линкера - нет проблем, хотя иногда это тоже превращается в недостаток =)

Люблю FASM за то, что он позволяет как-угодно извращаться над выходным файлом, все секции можно собрать своими руками, слепить в кучу, поиздеваться над импортом так, что потом эту программу ни один отладчик не решится трогать Ну и для всякой заразы лучше инструмента просто не найти ]:-)
пыщь

Последний раз редактировалось JTG; 18.07.2008 в 12:56.
JTG вне форума Ответить с цитированием
Старый 18.07.2008, 14:10   #10
Demonid7
 
Регистрация: 18.07.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Компилит и эльфы, сырые бинарники, и даже под ARM энтузиасты чёта натворили. Компилит 64-битный (AMD64 и EM64T)
Слинковать масмовский код под любую платформу не составляет труда, благо линкеров более чем достаточно. Собственно именно поэтому компиляция и линковка разнесены, что бы не навязывать программисту какой либо линкер.
Цитата:
Сообщение от JTG Посмотреть сообщение
взять тот же TASM, тем более синтаксис ideal borland у обоих. Прекрасно справляется со всеми задачами при отсутствии "лишних" offset, assume..
а между тем синтаксис у них отличается, многие запросто "пролетают" с тем же offset, поскольку практически во всех компиляторах приучают, что для получения адреса нужно явно использовать offset, в противном случае идет обращение к значению по адресу переменной, но в фасме это соглашение нарушено, в результате перенести код фасма под другой ассемблер довольно "веселенькое" занятие. Да и все эти SEGMENT, ASSUME и прочие - это не прихоть, а необходимость, особенно в специфических задачах, где приходится использовать "нестандартные" сегменты. Ну а ASSUME, помимо прочего, значительно облегчает жизнь, когда необходимо использовать виртуальные сегменты. В фасме пришлось бы явно прописывать сегментные регистры, сокращая срок жизни клавиатуры :D
Цитата:
Сообщение от JTG Посмотреть сообщение
Поддерживает MMX, SSE, 3DNow!
И какие с этим проблемы в масме и тасме?
Цитата:
Сообщение от JTG Посмотреть сообщение
Макроязык безподобен, позволяет реализовать офигительно функциональные псевдовысокоуровневые конструкции.
Смысл? В том же тасме это уже встроено в язык.
Цитата:
Сообщение от JTG Посмотреть сообщение
Базовый функционал - работа с памятью, ввод-вывод, строки, потоки, преобразование типов - реализованы в Fasmlib
Неплохая попытка, но уж лучше использовать проверенные временем и значительно более функциональные Си-либы. Один fscanf() чего стоит
Цитата:
Сообщение от JTG Посмотреть сообщение
При желании собирает и obj, который можно скормить чужому линкеру.
Вот вот. А смысл тогда использовать "компилятор и линковщик в одном флаконе"?
Цитата:
Сообщение от JTG Посмотреть сообщение
Новичкам легче осваивать FASM в плане того, что в нём "всё в одном флаконе"
Ну да, типа "Hello World!". А потом с удивлением начинают задавать вопросы, а как мол избавиться от постоянной перекомпиляции всего проекта, а то мол задолбало время тратить.
Цитата:
Сообщение от JTG Посмотреть сообщение
На форуме с периодичностью 2 раза в месяц появляются темы "не могу скомпилировать прогу - ругается на unresolved external symbol", постоянные проблемы с компоновщиком, теряют ключи/обязательные параметры/компилят под дос виндовые исходники и т.п.
На форумах Сишников тоже постоянно появляются такие же вопросы, но ведь никому в голову не приходит объеденить компилятор и линковщик, и упростить параметры командной строки Вообще подобные вопросы скорее от спешки, надо ведь начинать учиться с малого, а некоторым не терпится :D
Цитата:
Сообщение от JTG Посмотреть сообщение
Люблю FASM за то, что он позволяет как-угодно извращаться над выходным файлом, все секции можно собрать своими руками, слепить в кучу, поиздеваться над импортом так, что потом эту программу ни один отладчик не решится трогать
Вопрос только зачем это нужно, когда вполне хватает утилит, все равно эти фичи применяют на заключительном этапе, что бы не осложнять себе отладку к слову скать и масм с тасмом тоже позволяют поизвращаться над выходным файлом.

Может темку отдельную создадим, где можно будет спокойно обсудить, кому что нравится в каком асме?
Demonid7 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM дело тонкое!:) (Где в TASM IDE?) 3.14oner Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 15.11.2011 15:20
Обьясните различия между - FASM, WASM, VASM, MASM, TASM Amancha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.01.2009 15:38
А где взять MASM RomanIgorevi4 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 06.07.2008 12:04
struct vs MASM format Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.05.2008 16:54
где есть masm 64бит ? rpy3uH Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 11.01.2007 14:19

Реклама для незарегистрированных, регистрация на форуме