Программное обеспечение для ассемблирования - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

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

Цветков И.А. 1, Абрамова О.Ф. 1
1Волжский политехнический институт (филиал) ВолгГТУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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.

 

Рисунок №3 – простое оконное приложение на FASM’е

Заключение

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

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

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

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

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

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

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

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

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

Просмотров работы: 24