Битва трансляторов

Крис Касперски

Хакер, номер #092, стр. 092-118-4

И хотя эти проблемы в принципе разрешимы, возможность низкоуровневого ассемблерного программирования (без включаемых файлов и макросов) осталась там же, где и была. Несовместимость форматов компенсируется наличием конверторов, но преимущества режима IDEAL над стандартным синтаксисом MASM'а день ото дня казались все менее и менее значительными, ряды поклонников редели, и в конце концов проект загнулся. Последней версией транслятора стал TASM 5.0, поддерживающий команды вплоть до 80486 процессора. Отдельно был выпущен патч, обновляющий TASM до версии 5.3 и поднимающий его вплоть до Pentium MMX, однако команды Pentium II такие, например, как SYSENTER до сих не работают. Поддержка уникода тоже отсутствует.

В настоящее время Borland прекратила распространение своего ассемблера, и достать его можно только в магазинах, торгующих старыми CD-ROM, или у какого-нибудь коллекционера. Пацан по кличке !tE выпустил пакет TASM 5+, включающий в себя транслятор, линкер, библиотекарь, какое-то подобие документации, несколько заголовочных файлов под Windows и пару демонстрационных примеров. Когда будешь искать это добро, не перепутай его с TASM32 фирмы Squak Valley Software — это совершенно независимый кроссассемблер, ориентированный на процессоры 6502,6800/6801/68HC11, 6805, TMS32010, TMS320C25, TMS7000, 8048, 8051,8080/8085, Z80, 8096/80C196KC.

Короче, TASM — это труп. Причем вполне конкретный. Но для разработки прикладных приложений под Windows 16/32 и MS-DOS он все-таки подходит, особенно, если есть опыт работы с ним и некоторые собственные наработки (библиотеки, макросы), с которыми жалко расставаться, а конвертировать под MASM – весьма проблематично. Возможно, тебе понравится бесплатный Lazy Assembler (автор — Половников Степан), совместимый с режимом IDEAL TASM и поддерживающий команды из наборов MMX, SSE, SSEII, SSEIII, 3DNow!Pro.

FASM

Писать о культовых проектах, не затронув чувства верующих и сохранив при этом здоровую долю скептицизма и объективизма не так-то просто, особенно если ты сам являешься апологетом веры. FASM (расшифровывается как Flat Assembler – Ассемблер плоского режима) — это крайне необычный транслятор с экзотичными возможностями, которых все мы давно (и безуспешно!) ждали от крупных производителей, но те были слишком далеки от практического программирования и пытались сформировать новые потребности (например, путем введения поддержки ООП) вместо того, чтобы удовлетворять те, что есть.

Так продолжалось до тех пор, пока Томаш Гриштар (Tomasz Grysztar) — аспирант Ягеллонского университета в Кракове — не задумал написать свою собственную ось, названную Титаном и представляющую некоторое подобие DOS-системы для защищенного режима. Перебрав несколько ассемблерных трансляторов, но так и не обнаружив среди них подходящего, Томаш пошел на довольно амбициозный шаг, решив разработать необходимый инструментарий самостоятельно. Это произошло в 1999-03-23, 14:24:33 (дата создания первого файла), и уже к началу мая 1999 года появилась версия, способная транслировать сама себя (FASM написан на FASM'е). Операционная система в результате одной случайной катастрофы пала смертью храбрых, а вот исходные тексты FASM'а остались, и с тех пор он продолжает активно развиваться.

Назад на стр. 092-118-3  Содержание  Вперед на стр. 092-118-5
ttfb: 3.4220218658447 ms