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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 17.06.2008, 16:43   #1
veter_s_morya
Участник клуба
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Адрес: планета Земля
Сообщений: 605
Репутация: 185
Вопрос Чем отличается Tasm от Masm

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

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

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

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

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

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

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

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

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

Извиняюсь за некрофилию, но я здесь только недавно, а темка интересная :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, 13:39   #9
JTG
я получил эту роль
Профессионал
 
Аватар для JTG
 
Регистрация: 25.05.2007
Адрес: тут темно и с потолка капает
Сообщений: 3,695
Репутация: 2224

icq: III 37373860
По умолчанию

Я лично тоже за 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 в 13:56.
JTG вне форума   Ответить с цитированием
Старый 18.07.2008, 15:10   #10
Demonid7
 
Регистрация: 18.07.2008
Сообщений: 8
Репутация: 14
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




02:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru