Ассемблер: свежий взгляд. Что думают об этом профессионалы?
Xakep, номер #045, стр. 045-026-6 В общем, NASM штука мощная, но с ограничениями. Во-первых, он имеет несколько другой синтаксис. То есть, научившись писать под него проги, тебе понадобится немного попотеть, чтобы написать то же самое под MASM (ассемблер от Microsoft). Второе, по NASM нет нормальных книг и справочников, а значит, тебе придется изучать его по документации. Благо мы об этом позаботились, и необходимые руководства на русском языке выложили на наш CD. Но! У NASM есть один оч-чень большой плюс: код, написанный на нем, можно заставить работать на любой платформе. И Windows, и Linux, и *BSD. Для этого просто при компиляции надо указывать необходимые тебе ключи. Кстати, сам NASM это всего лишь компилятор. А для работы тебе понадобится еще и линкер. В таком случае мы рекомендуем Alink - упаковщик (упаковщик и линкер это одно и то же), разработанный специально для этого компилятора. И NASM, и Alink бери с нашего диска. Для работы с NASM тебе понадобится еще и оболочка. Что-то типа IDE. Но о ней мы поговорим ниже. А что делать тем, у кого стоит любой клон Windows? Ответ прост: использовать MASM32. Почему? Попробую объяснить. Конкурентов может быть только два: TASM (от дяди Бормана) и MASM (от мелкой&мягкой старушки). Начнем с TASM. В этот пакет входит компилятор, линкер, редактор ресурсов и куча всяких утилит. Проблема кроется в компиляторе. Во-первых, TASM сам по себе может некорректно компилировать код под Windows. Это факт - проги будут виснуть и работать нестабильно. Если ты всю жизнь кодишь на TASM под Win и у тебя еще ничего не висло - значит, ты пишешь лишь простенькие проги. Поверь, для серьезного дела TASM не годится - например, для написания драйверов. Во-вторых, дядя Борман перестал развивать свой ассемблер как самостоятельный продукт. То есть последний TASM не поддерживает новейшие расширения типа SSE2. Хотя асм-компилятор, поставляемый с Delphi или Cbuilder, поддерживает все нововведения. Но для написания чистых программ на ассемблере он не годится. Следующий - MASM. Профи любят его за классное качество работы компилятора и линкера. Но в сам пакет MASM не входят дополнительные утилиты, не говоря уже об IDE. А MASM32 как раз и включает в себя компилятор и упаковщик MASM, и кучу всякого барахла, без которого жить тошно. Поэтому мы останавливаем свой выбор на MASM32 (последний дистрибутив которого качай с нашего CD). Без IDE как без рук! Компилятор всему голова, а без нормальной среды разработки ты далеко не уедешь. Если ты уже профи, то, скорее всего, уже подыскал себе нормальную IDE. А вот для бегиннера это точно проблема. Вся беда в том, что с самого начала была заложена дурацкая традиция: пишешь свой код в спартанских условиях в любом текстовом редакторе, компилируешь и линкуешь его командной строкой. Все было бы хорошо, если бы не одно "но". Представь, ты написал прогу строк эдак в 100 (для асм-прог это очень маленький размер). Компилятор тебе говорит: типа, в строке номер 50 вместо mov ты написал mav. Что ты делаешь? Открываешь текстовый редактор и начинаешь искать эту пресловутую строку: никакой подсветки, никакого указания на ошибку. Как пещерный человек! Несправедливо, ведь еще с появления Quick Basic и Turbo Basic каждый компилятор имел при себе еще и текстовый редактор, который и на ошибку указывал, и синтаксис подсвечивал. Так что IDE нужна! |