Об Ассемблере и не только

                                  Дао дало жизнь машинному языку. Машинный язык дал жизнь ассемблеру. Ассемблер дал жизнь компилятору. Сейчас существует десять тысяч языков. У каждого языка есть свое назначение, иногда скромное. Каждый язык выражает Инь и Янь программного обеспечения. Каждый язык имеет свое место в Дао. Hо не программируйте на Visual Basic'е, если вы можете этого избежать.

В этой небольшой статье я хочу поддержать фанатов низкоуровневого программирования. Здесь нет ничего о катушках индуктивности, только об ассемблере и программировании. Напоминаю, что Coil32 v4 написана на этом языке. Исходники этой версии доступны для скачивания, изучения и использования. Необходимый минимум программ для работы с исходниками - это MASM32 v10 и выше и WinAsm Studio.

Для компиляции Dll в Asm'е вам понадобится ASM Editor for Windows, а также этот батник. Сохраните его в папке BIN каталога, где установлен MASM, и в настройках ASM Editor дайте ссылку на него в пункте меню "Build Dll".

Ассемблер создан как замена двоичному коду, который понимает процессор. Давным-давно, в начале времен, когда еще не было никаких языков программирования высокого уровня, программы создавались на ассемблере.

Многие думают, что на ассемблере очень сложно, практически невозможно программировать. Безусловно, это сложно, но очень даже возможно. Это на заре развития IT приходилось составлять программы чуть ли не в двоичном коде (в шестнадцатеричном то точно) и работать в командной строке. Сейчас появились пакеты типа MASM32 имеющие в своем составе все необходимые инструменты для сборки и компиляции исполняемых файлов и DLL библиотек. Вызов системных API функций происходит почти так же как и в языках высокого уровня. А программа WinAsm Studio позволяет свести все файлы в единый проект и представляет собой неплохую IDE для ассемблера с подсветкой синтаксиса, автодополнением кода и прочими вкусностями. Для пошаговой трассировки и отладки программы я использовал OllyDbg 1.10. Для сжатия исполняемых файлов очень удобен UPX. Немаловажно, что все эти программы бесплатны. В итоге сейчас создать простую программу на ассемблере не сложнее, чем в ранних версиях Visual C++, а возможно в чем то и проще.

программирование на ассемблере

Конечно, создавать большие проекты на Ассемблере - это тоже, что обрабатывать фотографию в Paint. Как для этого случая созданы такие программы как Photoshop, так и для создания сложных программных продуктов - Visual C++ и т.п. Однако при создании простой программы, Assembler - лучший язык программирования. Поспорьте со мной...