Скачать презентацию Сравнительный оценка MASM 64 и FASM Выполнил студент Скачать презентацию Сравнительный оценка MASM 64 и FASM Выполнил студент

FASM и MASM.ppt

  • Количество слайдов: 17

Сравнительный оценка MASM 64 и FASM Выполнил студент группы Ди. КТ-31 -11 Мухин Д. Сравнительный оценка MASM 64 и FASM Выполнил студент группы Ди. КТ-31 -11 Мухин Д. Г.

Введение Проблема выбора Введение Проблема выбора "единственного правильного" ассемблерного транслятора мучает не только начинающих, но и профессиональных программистов. У каждого продукта есть своя когорта поклонников и спор о преимуществах/недостатках рискует превратиться в священную войну с выносом тел погибших.

Тем не менее. . . существует ряд основополагающих критериев, существенных для всех категорий программистов. Тем не менее. . . существует ряд основополагающих критериев, существенных для всех категорий программистов.

Критерии ➢ ➢ ➢ ➢ Цена Открытость Популярность Архитектуры Платформы Поддержка UNICOD Документация Наличие Критерии ➢ ➢ ➢ ➢ Цена Открытость Популярность Архитектуры Платформы Поддержка UNICOD Документация Наличие ошибок

Коротко о MASM Продукт компании Microsoft, которой был нужен для создания программ под MS-DOS Коротко о MASM Продукт компании Microsoft, которой был нужен для создания программ под MS-DOS и Windows 9 x/NT. Аббревиатура MASM расшифровывается как Macro Assembler, то есть Ассемблер с поддержкой Макросов, покрывающих своими возможностями широкий круг задач. Имеется даже зачаточная поддержка основных парадигм ООП, впрочем, так и не получившая большого распространения, поскольку ассемблер и ООП концептуально несовместимы. Сначала MASM распространялся в виде самостоятельного пакета, но позже он был включен в состав DDK, которое вплоть до Windows 2000 DDK раздавалось бесплатно, а сейчас доступно только подписчикам MSDN. Впрочем, сам транслятор MASM еще и в Visual Studio Express. Стив Хатчессон собрал последние версии транслятора MASM'а, линкер от Microsoft, включаемые файлы, библиотеки, обширную документацию, статьи разных авторов, посвященные ассемблеры и даже простенькую IDE в один дистрибутив, известный под "пакетом хатча" (hutch), бесплатно раздаваемый всем желающим на вполне лицензионной основе. MASM'у посвящено множество книг, что упрощает процесс обучения, а в сети можно найти кучу исходных текстов ассемблерных программ и библиотек, освобождающих программиста от необходимости изобретать велосипед. Также MASM является выходным языков для многих дизассемблеров.

Коротко о FASM (расшифровывается как Flat Assembler - Ассемблер Плоского Режима) - это крайне Коротко о FASM (расшифровывается как Flat Assembler - Ассемблер Плоского Режима) - это крайне необычный транслятор с экзотичными возможностями, которых давно ждали от крупных производителей, но те были слишком далеки от практического программирования и пытались формировать новые потребности (например, путем введения поддержки ООП), вместо того, чтобы удовлетворять те, что есть. История создания схожа с MASM. FASM создавался для ОС ТИТАН. Операционка умерла при родах, но ассемблер остался. FASM - это ассемблер с предельно упрощенным синтаксисом, полной поддержкой всех процессорных команд, качественным кодогенератором, мощным макропроцессором и гибкой системой управления за форматом выходных файлов. FASM распространяется с наборами мультимедийных инструкций MMX, SSEII, SSEIII, AMD 3 DNow!. Фактически, FASM позволяет обходиться без линкера, однако это кладет на плечи программиста дополнительную тяжесть. Макроязык FASM настолько мощный, что позволяет писать программы на себе самом без единой ассемблерной строки.

Цена Оба транслятора являются бесплатными, что не удивительно, ведь оба транслятора написаны для операционных Цена Оба транслятора являются бесплатными, что не удивительно, ведь оба транслятора написаны для операционных систем, а для них нужны драйверы, а драйверы и пишутся на низкоуровневых языках.

Открытость Исходники MASM закрыты. Как и большинство продуктов Майкрасофт. Исходный код FASM открыт, что Открытость Исходники MASM закрыты. Как и большинство продуктов Майкрасофт. Исходный код FASM открыт, что позволяет развиваться быстрее и исправить ошибки в кратчайшие сроки.

Популярность MASM очень популярен и прежде всего это связано с тем, что популярна платформа Популярность MASM очень популярен и прежде всего это связано с тем, что популярна платформа Windows. FASM не получил широкого распространения, вероятнее всего по причине независимости от операционных систем, что не позволяет быстрее выполнять прикладные задачи (отсутствие API-функций сильно мешает. . . ).

Архитектуры Оба транслятора поддерживают архитектуры x 86 16/32. Платформа Intel IA 64 не поддерживается Архитектуры Оба транслятора поддерживают архитектуры x 86 16/32. Платформа Intel IA 64 не поддерживается MASM'ом, но Microsoft поставляет Intelассемблер IAS. EXE, но архитектура AMD 64 поддерживается в полном объеме. FASM поддерживает архитектуру AMD 64 и тоже не поддерживает архитектуру IA 64.

Отступление. . . IA-64 (Intel Architecture-64) — 64 -битная аппаратная платформа: микропроцессорная архитектура и Отступление. . . IA-64 (Intel Architecture-64) — 64 -битная аппаратная платформа: микропроцессорная архитектура и соответствующая архитектура набора команд, разработанная совместно компаниями Intel и Hewlett Packard. Реализована в микропроцессорах Itanium и Itanium 2. Несовместима с архитектурой x 86 -64 (также AMD 64/Intel 64/EM 64 T) — 64 -битное расширение, набор команд, для архитектуры x 86, разработанное компанией AMD, позволяющее выполнять программы в 64 -разрядном режиме. Иногда упоминание AMD вводит пользователей в заблуждение, вплоть до того, что они отказываются использовать дистрибутивы родных версий операционной системы, мотивируя это тем, что на их процессоре Intel версия для AMD не будет работать.

Платформы MASM, что не удивительно, поддерживается родными платформами DOS и WIN. FASM, как представитель Платформы MASM, что не удивительно, поддерживается родными платформами DOS и WIN. FASM, как представитель ПО с открытым кодом, портирован на большую часть популярных платформ, как то: DOS, WIN, LINUX, BSD.

Поддержка UNICOD Оба транслятора поддерживают UNICOD, однако заметим, что для MASM этого изначально не Поддержка UNICOD Оба транслятора поддерживают UNICOD, однако заметим, что для MASM этого изначально не планировалась и в результате породила много ошибок.

Документация Надо сказать, что документация MASM, отличается лучшей структурированностью и понятностью, в отличие от Документация Надо сказать, что документация MASM, отличается лучшей структурированностью и понятностью, в отличие от FASM.

Наличие ошибок Официально подтвержденных багов у MASM просто не счесть. Особенно много ошибок в Наличие ошибок Официально подтвержденных багов у MASM просто не счесть. Особенно много ошибок в штатной библиотеке. По этому критерию безусловно побеждает FASM. Вероятнее всего МASM проигрывает в виду отказа MICROSOFT от низкоуровности там, где это возможно, что привело к упадку MASM.

Итоги MASM (Macro Assembler) — при всех своих недостатках, лучшее средство при программировании под Итоги MASM (Macro Assembler) — при всех своих недостатках, лучшее средство при программировании под Windows. По сути — стандарт. FASM (Flat Assembler) - неординарный и весьма самобытный, но не является серьезным инструментов. Теперь о недостатках. Ни на что не похожий синтаксис FASM'а напрягает даже матерых программистов, заставляя их вчитываться в документацию и небольшое количество демонстрационных примеров, поставляемых вместе с транслятором. На это требуется время, которое в конечном счете ничем не компенсируется, поскольку круг задач, на которых FASM рвет MASM, крайне мал. Категорическая несовместимость с MASM'ом чрезвычайно затрудняет разработку Windowsдрайверов. Прикладным задачам в свою очередь требуется SDK, да и программы, целиком написанные на ассемблере, - это совсем не то, чего требует бизнес-машина. "Математические" задачи, перемножающие матрицы, вычисляющие координаты пересечения кривых в N-мерном пространстве или трансформирующие графику легко пишутся на FASM, поскольку не привязаны к конкретной операционной системе и никаких API-функций они не вызывают.

Источники http: //www. insidepro. com/ https: //ru. wikipedia. org http: //flatassembler. net/ http: //msdn. Источники http: //www. insidepro. com/ https: //ru. wikipedia. org http: //flatassembler. net/ http: //msdn. microsoft. com/