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

Самые популярные разновидности языка ассемблера и отличительные особенности каждого. Простое консольное приложение на TASM’е. Flat Assember как свободно распространяемый ассемблер, написанный Томашем Грыштаром. Небольшие различия синтаксиса мнемокода.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 17.02.2019
Размер файла 327,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

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

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

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

Аннотация

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

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

Ключевые слова: ассемблирование, 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.

Размещено на Allbest.ru

...

Подобные документы

  • Особенности ассемблера - машинно-ориентированного языка низкого уровня, применяемого для создания простых приложений. Связывание программ на разных языках. Типичный формат записи команд, инструкции и директивы языка ассемблера. Разработка игры "Змейка".

    курсовая работа [215,0 K], добавлен 20.07.2014

  • Программная модель МП с регистр-аккумуляторной архитектурой. Особенности программирования в машинных кодах, мнемокодах и на языке ассемблера. Правила составления схем алгоритмов. Порядок ввода, редактирования, трансляции и отладки прикладных программ.

    контрольная работа [266,1 K], добавлен 21.08.2010

  • Особенности языка ассемблера. Классификация основных информационных систем. Выбор средств разработки автоматизированной справочной системы. Выбор средства проектирования и разработки приложения. Технические условия работы и порядок работы с программой.

    дипломная работа [222,2 K], добавлен 25.03.2013

  • Изучение некоторых аспектов языка Ассемблера и ЭВМ в целом. Построение алгоритмов решения поставленной задачи на языках программирования Си, Ассемблер УМ и IBM PC. Составление блок-схем решений и написание программ на каждом из перечисленных языков.

    курсовая работа [691,5 K], добавлен 20.10.2014

  • Оптимизация с использованием языка низкого уровня ассемблера. Его связь с языками высокого уровня. Отдельно компилируемые модули. Разработка программных модулей на ассемблере с использованием компиляторов TASM5.0 фирмы Borlandи MASM6.14 фирмы Microsoft.

    курсовая работа [405,5 K], добавлен 18.05.2014

  • Взаимосвязь стадий процесса проектирования сложных программных систем. Создание компилятора подмножества языка высокого уровня (Pascal) на язык Ассемблера. Структура входных и выходных данных, алгоритмы их обработки. Рабочая документация программы.

    курсовая работа [256,7 K], добавлен 27.07.2014

  • Определение и свойства алгоритма, его разработка. Технология создания прикладной программы. Системное программное обеспечение персонального компьютера, его назначение. Приложения, входящие в пакет MS Office XP. Характеристика внутренних и внешних модемов.

    методичка [1,7 M], добавлен 26.03.2010

  • Изучение команд для обработки строк, приемов, используемых в работе со строками, приемы их использования. Команды префикса повторения. Приемы программирования на языке Ассемблера с использованием подпрограмм, работа с командами вызова подпрограмм.

    методичка [121,0 K], добавлен 18.12.2011

  • Общие сведения о языке ассемблера. Назначение команды прерывания INT число. Описание логической структуры программы: алгоритм работы, используемые методы, входные и выходные данные. Структура и тестирование программы. Руководство оператора программы.

    курсовая работа [90,0 K], добавлен 01.12.2009

  • Типовые структуры блок-схем алгоритмов обработки данных на языке "Ассемблер" для простых микропроцессорных систем управления различными процессами. Реализация типовых функций управления, ее принципы и закономерности, правила графического оформления.

    методичка [572,8 K], добавлен 02.10.2010

  • Характеристика приложения "Мой компьютер": управление файлами, папками, дисками средствами. Прикладное программное обеспечение, его классификация по областям применения и условиям распространения, типы программ и их главные функциональные особенности.

    контрольная работа [660,0 K], добавлен 02.04.2014

  • Разработка на языке ассемблера алгоритма контроля, на циклический CRC-код, массива данных хранящегося в некоторой области памяти. Сохранение кода для последующей периодической проверки массива данных. Сообщение об искажении данных. Описание алгоритма.

    курсовая работа [453,0 K], добавлен 27.02.2009

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.

    курсовая работа [1,3 M], добавлен 02.12.2009

  • Навички роботи з записами мови ассемблера, зокрема, створення масивів записів з можливістю управління елементами і очищення поля. Програма дозволяє ввести з клавіатури запис, а потім за допомогою функціональних клавіш дозволяє редагувати цей запис.

    курсовая работа [33,4 K], добавлен 20.01.2009

  • Проблемы использования и распространения программного обеспечения, защищенного авторским правом. Разновидности лицензионных соглашений, предоставляющие правообладателю набор инструментов для реализации и защиты своих прав на программное обеспечение.

    реферат [30,2 K], добавлен 10.01.2017

  • Разработка транслятора упрощенного языка ассемблера. Преобразование файла в мнемокодах в файл, содержащий объектный двоичный код. Анализ набора команд. Выбор формата ассемблерной команды. Методика определения типа операнда. Формирование строки листинга.

    курсовая работа [189,2 K], добавлен 14.02.2016

  • Описание синтаксиса и семантики входного языка. Описание типов лексем, определение их синтаксиса. Построение диаграммы лексического анализатора, а также его таблицы, тестирование. Построение КС-грамматики входного языка. Описание промежуточного языка.

    курсовая работа [83,0 K], добавлен 23.01.2014

  • Изучение основных этапов программирования на ассемблере, который является символическим представлением машинного языка, то есть каждой машинной команде соответствует команда ассемблера. Реализация алгоритма выполнения программы для просмотра bmp файлов.

    курсовая работа [248,0 K], добавлен 25.12.2012

  • Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.

    презентация [1,2 M], добавлен 25.02.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.