Статья: Программное обеспечение для ассемблирования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет" Волжский, Россия

Программное обеспечение для ассемблирования

Цветков Иван Андреевич

Абрамова Оксана Федоровна

Аннотация

ассемблер приложение мнемокод

Существует множество диалектов языка ассемблера, и у каждого из них есть свои особенности. В этой статье мы рассмотрим самые популярные разновидности языка ассемблера и попытаемся выделить отличительные особенности каждого.

Ключевые слова: ассемблирование, TASM, MASM, FASM, ассемблер, язык ассемблера, диалекты ассемблера.

Abstract

There are many different assembly language dialects and each one has its own unique features. In this article we will have a look at the most popular dialects of assembly language and try to point out their distinctive features.

Keywords: assembly, assembling, TASM, MASM, FASM, assembler, assembly language, assembler dialects.

Перед тем, как приступить к разбору ассемблеров, стоит упомянуть, что необходимость рассмотрения именно диалектов языка ассемблера вытекает из однозначности процесса ассемблирования: одни и те же мнемонические команды ассемблируются в одни и те же команды данного процессора, независимо от того, какой ассемблер был использован. Это то, что объединяет все диалекты. Но есть и различия, например, небольшие различия синтаксиса мнемокода определенного диалекта, наличие документации и ее качество (может показаться, что это несущественный фактор, однако эксплуатация программы основываясь на доводах и опыте не самая эффективная практика), наличие макросредств и их возможности в рамках данного диалекта.

TASM

Turbo Assembler, программное обеспечение, разработанное компанией Borland, предназначенное для разработки программ на языке ассемблера для архитектуры x86. В 1996 году компания Borland прекратила поддержку и распространение своего продукта. Основные компоненты: ассемблер tasm.exe, компоновщик tlink.exe и отладчик td.exe. TASM может транслировать исходники MASM, а так же имеет режим IDEAL. Самые популярные среды для разработки: ASM Visual, ALAB, emu8086. Сейчас эту программу можно запустить только через эмулятор, так как современные операционные системы не поддерживают старый софт. Существует и 32 битная версия, но она имеет ряд недостатков по сравнению с другими ассемблерами, например на ней не получиться писать драйвера под Windows, да и это не так важно, ведь TASM уже довольно давно считается устаревшим. Для TASM'а было написано много хорошей документации, в том числе энтузиастами, но, так как он больше не поддерживается, найти ее становится все сложнее. Пример кода на TASM'е представлен на рисунке 1.

Рисунок №1 - простое консольное приложение на TASM'е

MASM

Macro Assembler, продукт компании Microsoft, который поддерживается и по сей день. MASM позволяет писать 16, 32 и 64-битные приложения. Может состоять из ассемблера и компоновщика ml.exe или компоновщика link.exe и ассемблера masm.exe, отладка осуществляется внешними приложениями, например, поставляемым с Windows SDK windbg или встроенным отладчиком Visual Studio. Существуем множество сред, поддерживающих MASM, таких как Visual Studio, qeditor/unieditor, ASM Visual, Visual MASM, многие среды, поддерживающие TASM. Особенность MASM'а заключается в изобилии макросредств и наличии конструкций высокого уровня для повторов и вызовов, из-за его называют ассемблером высокого уровня. MASM - удобное и мощное средство для написания приложений win32, и в этом у него нет реальных альтернатив. Не смотря на это, у него есть ряд недостатков, например отсутствие поддержки некоторых инструкций и режимов адресации. Имеется большое количество документации от Microsoft, в том числе раздел в справочнике msdn. Пример кода на MASM'е представлен на рисунке 2.

Рисунок №2 - простое консольное приложение на MASM'е

FASM

Flat Assember - свободно распространяемый ассемблер, написанный Томашем Грыштаром. FASM самодостаточен, то есть может написан сам на себе. Имеет мощные макросредства, настолько мощные, что можно писать программы прямо на них без использования непосредственной мнемоники ассемблера. Это не значит, что писать вы будете исключительно на макросах, это приятное дополнение, а не обязательная часть программы. FASM удобен тем, что позволяет производить файлы любого формата, формат указывается прямо в листинге программы. Синтаксис FASM сильно упрощен, здесь вы никогда не встретите операторов offset или ptr. Самый яркий недостаток - несовместимость с MASM, усложняющая написание драйверов Windows. Так же Крис Касперски отметил, что FASM пригоден только для мелких задач. Весь арсенал этого ассемблера представлен в IDE fasmw.exe, есть и его консольный аналог fasm.exe. Кроме fasmw.exe есть такие среды, как FASM Editor и ASM Visual, так же он поддерживается в emu8086 настолько, насколько это возможно. Документация есть, она плохо структурирована, но при желании разобраться в ней можно. Пример кода на FASM'е представлен на рисунке 3.

Заключение

Нами были рассмотрены несколько известных диалектов ассемблера, конечно, далеко не все, ведь их огромное множество. Может показаться, что язык ассемблера устарел с приходом языков высокого уровня, но это не так. Конечно, писать все подряд на ассемблере бессмысленно, но все же существует спектр задач, решаемых только на низком уровне. Для программирования Windows приложений удобнее всего использовать MASM, а для обучения ассемблеру TASM, разобравшись с работой ассемблера в MSDOS будет куда проще понять усложненный принцип работы приложений Windows и Windows API.

Библиографический список

1. Электронный ресурс: http://likameta.narod.ru/passembler/asm1.html (Дата обращения 18.11.2018)

2. Электронный ресурс: https://habr.com/post/326078/ (Дата обращения 23.11.2018)

3. Электронный ресурс: https://habr.com/post/345748/ (Дата обращения 23.11.2018)

4. Электронный ресурс: http://asmworld.ru/uchebnyj-kurs/000zachem-uchit-assembler/ (Дата обращения 20.11.2018)

5. Электронный ресурс: http://mf.grsu.by/UchProc/livak/ arxiv_22102010/ kursi/programming/lections/assm/macros.htm (Дата обращения 18.11.2018)

6. Абрамова О.Ф. Использование мультимедийных технологий в процессе обучения дисциплине "Компьютерная графика" / О.Ф. Абрамова, С.В. Белова // Успехи современного естествознания. - 2012. № 3. - C. 90.

7. Абрамова О.Ф. Создание реалистичных моделей в высоконагруженных проектах [Электронный ресурс] / О.Ф. Абрамова, А.В. Книжко // NovaInfo.Ru : электрон. журнал. - 2016. - № 44, ч. 3. - C.34-41. - Режим доступа : http://novainfo.ru/article/5573.