BLASM IDE

Среда разработки для Ассемблера

Язык Ассемблера - первый из языков программирования, придуманных людьми. Первоначально он был придуман для того, чтобы облегчить работу с машинными кодами, которые в давние времена программисты вынуждены были помнить назубок. Изобретение записи этих команд в мнемонической форме, которую было гораздо легче запомнить, чем двоичную или даже шестнадцатеричную их запись, вдохнуло новые силы в программирование и сделало его гораздо более простым, чем до создания Ассемблера, и позволило этому, в общем-то, совершенно непростому тогда занятию обзавестись множеством поклонников среди математиков и инженеров.

Ассемблер - единственный, пожалуй, из языков программирования, принятый программистским сообществом с поразительным единодушием. В пору, когда существовал один только этот язык, не было ставших притчей во языцех религиозных войн среди поклонников разных языков - войн, которые, к сожалению, продолжают оставаться нормой и в наше время. Я лично до сих пор не могу понять, почему некоторые взрослые люди, давно обзаведшиеся семьёй и детьми, продолжают вести себя как дети на форумах и в чатах, оскорбляя сторонников чуждого им языка программирования со всей изощрённостью своего недюжинного математического ума. Видимо, современной психологии этот феномен растолковать не под силу.

Появление в более поздние годы языков высокоуровневого программирования, первым из которых был Фортран, вызвало большое количество споров. Одним из основных вопросов был по поводу производительности приложений, написанных на языках программирования высокого уровня. В те годы он был особенно актуальным, и именно производительность стала камнем преткновения, не позволившим высокоуровневым языкам сразу завоевать рынок - как известно, грамотно написанная на Ассемблере программа обычно лучше того кода, который выдаёт компилятор высокоуровневого языка. Сегодня, конечно, смешно даже сравнивать производительность современного карманного компьютера-"наладонника" и мощной вычислительной машины начала 50-х годов, когда началось широкое внедрение и использование Ассемблера. Однако до сих пор существует ряд устройств, куда невозможно встроить мощный процессор в силу их конструктивных особенностей. Для таких устройств программы пишутся, в основном, на языке Ассемблера. Да и на привычных для нас всех персональных компьютерах, мощности которых с каждым годом продолжают плавно стремиться к какому-то пока что далёкому пределу, время от времени возникают задачи, требующие максимальной производительности программного обеспечения. Как правило, эти задачи связаны с т. н. "быстрой" графикой или обработкой в режиме реального времени видео или звука. Поэтому Ассемблер остаётся очень востребованным языком в современном компьютерном мире, и знание этого языка всегда приветствуется любыми работодателями.

Большинство программистов на Ассемблере - люди, вышедшие уже из студенческого или даже околостуденческого возраста. Вероятно, это связано с особенностями самого языка Ассемблера - он, как известно, целиком и полностью повторяет команды процессора, только записанные не в двоичной форме, а в форме текста. Чтобы программировать на этом языке, нужно хорошо понимать, как работает и аппаратная часть, и программная, причём начиная с самого низкого уровня последней - с BIOS. Естественно, чтобы досконально в этом разобраться, требуется значительное количество дефицитного ресурса по имени время, вот почему на Ассемблере программируют, в основном, не очень уже молодые специалисты.

Конечно, хороший программист на Ассемблере может писать программы и безо всякой интегрированной среды разработки, используя простой и непритязательный "Блокнот". В отличие от разработки графического пользовательского интерфейса, системное программирование вовсе не требует наличия качественного IDE. Но даже в этой области присутствие среды разработки повышает производительность труда программиста. Поэтому я и хочу немного рассказать об одной из сред разработки для Ассемблера. Как видно из названия статьи, этот продукт называется BLASM IDE. А работает он, конечно же, под управлением ОС Windows.

В интернете можно найти множество средств для разработки программ на Ассемблере. Большинство из них бесплатны, а некоторые, как, кстати, и BLASM IDE, - и вовсе open-source на условиях GNU GPL. Почему же именно BLASM IDE? Помимо основных функций, предоставляемых большинством ассемблерных IDE (подсветка синтаксиса, управление проектами, интегрированная сборка и компоновка), BLASM IDE умеет анализировать проекты, имеет встроенный шестнадцатеричный просмотрщик (HEX-viewer), а также непонятно зачем встроенный прямо в среду web-браузер (это всё вы видите на скриншоте). Но, конечно, не в браузере дело. Помимо IDE, в дистрибутив включён собственный Ассемблер - BLASM. Ему, конечно, далеко до неувядающего MASM'а, но для несложных программ и для обучения программированию на Ассемблере он подходит как нельзя лучше.

Автор этого всего - некто Andreas Berg, а сам BLASM можно найти на его сайте www.andreasberg.se. Размер дистрибутива BLASM IDE + BLASM - около 3 мегабайт, правда, исходные тексты в него не входят, их нужно скачивать отдельно. Зато туда входят небольшой справочник по ассемблеру (присутствует в форматах PDF, HTML и OpenOffice.org) и утилита BPFConv для перевода изображений из одного формата в другой.

При старте программы первое, что бросается в глаза, - автоматически открывающееся окно "About" с красивым пейзажем горного озера, которое имеет явно рукотворное происхождение (имеется в виду, что создано оно фантазией и мастерством 3D-художника). Оформление среды, в целом, тоже на неплохом уровне и достаточно современное, в отличие от большинства других ассемблерных сред разработки.

Правда, в плане редактирования исходного кода среда ничего особенного собой не представляет. У автора не хватило то ли изобретательности, то ли просто энтузиазма снабдить редактор чем-то большим, чем простая подсветка ассемблерного синтаксиса (да и та, надо сказать, реализована с помощью компонента Scintilla - www.scintilla.org. Кстати, хочу, пользуясь случаем, порекомендовать этот компонент всем программистам, которым нужен текстовый редактор с поддержкой подсветки синтаксиса для разных языков программирования).

Шаблонов создания программ в BLASM IDE тоже не слишком много - только для DOS'овских COM и EXE файлов. Впрочем, можно добавить свои. Если нажать кнопку "Build" на панели инструментов в главном окне программы, появится диалог, в котором нужно указывать файл, который требуется ассемблировать, а также ещё несколько дополнительных файлов, необходимых для проведения этой операции. Правда, после первого указания программа помнит настройки, и по второму разу "забивать" их нет необходимости. После ассемблирования проекта можно посмотреть информацию по нему - через пункт "Info" в меню "Project". По ходу ассемблирования среда разработки собирает сведения о проекте и осуществляет их анализ, а в диалоговом окне "Project Info" можно посмотреть на результаты этого анализа. Среди них - сообщения ассемблера (программы, которая осуществляет перевод исходного текста в машинный код - не стоит путать с Ассемблером, языком программирования), шестнадцатеричный вид полученного после сборки и компоновки файла, список всех ассемблерных макросов, использовавшихся в проекте, и многое другое. Там же можно посмотреть некоторую информацию справочного характера - например, список команд процессоров Intel x86, поддерживаемых ассемблером BLASM.

Не совсем понятным авторским манёвром является внедрение в среду разработки web-браузера на основе движка Internet Explorer. Сам автор этот "финт ушами" никак не комментирует, поэтому о его мотивах можно только догадываться. Лично я думаю, что это было сделано, чтобы программист мог в любое время поискать в сети справочную информацию и попутно посмотреть HTML-справку по BLASM'у. Однако не совсем понятно, что помешало бы ему (программисту) воспользоваться стоящим у него на компьютере браузером.

Настроек у BLASM IDE достаточно много, и так же много среди них бестолковых: примерно треть настроек всей среды, предусмотренных автором, относятся ко встроенному в неё браузеру.

Помимо браузера, есть ещё несколько встроенных в среду разработки вещей, которые автор, видимо, также посчитал просто необходимыми для программиста на Ассемблере. Это уже упоминавшийся мною конвертер картинок (он доступен и в виде отдельной программы) и программа для шифрования файлов. Особенность конвертера - поддержка авторских форматов растровых картинок (BPF) и значков-иконок (BIC). Какие у них преимущества перед обычными форматами, я, честно говоря, не понял. Шифровальщик файлов со своей задачей вполне справляется, однако узнать, по какому именно алгоритму он их шифрует, мне также не удалось.

Единственным по-настоящему полезным средством, встроенным в среду разработки, как мне кажется, является так называемый "To-Do List" - список задач, которые программист должен выполнить. В BLASM IDE он расположен внизу, прямо под окном редактора исходного кода, и виден программисту всё время.

Что ж, вот, вроде, и всё, что я хотел рассказать о BLASM IDE. О встроенном ассемблере говорить долго не буду, чтобы не захламлять статью, и ещё потому, что никаких особенностей в нём попросту нет. К тому же, подробная справочная информация по нему, которая будет интересна только специалистам в области системного программирования под Windows, находится на сайте разработчика.

Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Номер: 

23 за 2006 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!