Эволюция языка программирования Assembler

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?динаковых имён для обозначения членов различных структур;

применение операторов HIGH и LOW;

предварительное вычисление выражений EQU;

корректное управление сегментами данных объединённых в группы;

усовершенствованное использования директив;

разумное использование скобок в выражениях.

Turbo Assembler передаёт аргументы в процедуры на языках высокого уровня в кадре стека, помещая аргументы перед вызовом процедуры в стек. Процедуры, написанные на языках высокого уровня, считывают аргументы из стека по мере необходимости. При выходе процедура может удалять аргументы из стека или оставлять эту операцию для вызывающей процедуры.

Традиционным способом, с помощью которого объединяются программы, написанные на С++ и Ассемблере, является разделительная компиляция с последующей компоновкой в один исполняемый файл. При этом можно использовать компилятор Borland C++, который вызывает Turbo Assembler для трансляции ассемблерной программы.

Разработка программы на языке Turbo Assembler включает четыре этапа:

1-й этап. Подготовка исходного текста программы и оформление его в виде текстового файла (одного или нескольких) с помощью какого-нибудь редактора в формате DOS с расширением *.asm*.

2-й этап. Ассемблирование программы с применением транслятора Tasm, результатом которого является объектный файл с расширением *.obj*. Когда программа состоит из нескольких файлов (модулей), то их ассемблирование производится независимо друг от друга. Если в процессе трансляции будут обнаружены ошибки, то объектный файл не создаётся, а формируется сообщение об ошибках. Ошибки устраняются, после чего трансляция повторяется. Объектный файл (двоично-кодированное представление программы) не может быть запущен на исполнение, так как в нём не содержится информация о загрузке сегментов программы в памяти компьютера.

3-й этап. Компоновка программы производится компоновщиком (редактором связей) Turbo Linker и заключается в объединении объектных модулей в один исполняемый файл с назначением стартового адреса программы. Исполняемый файл имеет расширение *.exe*. 2-й и 3-й этапы определяют процесс подготовки исполнительного файла программы, называемого трансляцией.

4-й этап состоит в отладке программы с использованием отладчика Turbo Debugger, который будет являться основным инструментом при изучении форматов команд, их кодирования, а также представления переменных программы в памяти.

 

 

3.2.2. Macro Assembler

 

Пакет Макро Ассемблера включает в себя основные программы, необходимые для создания, отладки и сопровождения программ на языке ассемблера.

В состав пакета Макро Ассемблера входят следующие программные компоненты:

MASM - макроассемблер

LINK - объектный линкер 8086

SYMDEB - символьный отладчик программ

MAPSYM - генератор символьного файла

CREF - утилита перекрестных ссылок

LIB - утилита обслуживания библиотек

MAKE - утилита сопровождения программ

Макроассемблер MASM создает программы, которые могут быть выполнены микропроцессорами 8086, 8088, 80186 и 80286, а также может ассемблировать программы для компьютеров с сопроцессорами 8087 и 80287.

Линкер LINK обрабатывает выработанную MASM объектную программу с целью разрешения ссылок к другим модулям и приведения программы к виду, пригодному для загрузки в память.

Утилита LIB обеспечивает формирование и обслуживание библиотек объектных модулей, которые могут быть использованы LINK для разрешения внешних ссылок.

Отладчик SYMDEB реализует отладку сформированной программы на двух уровнях: на уровне символических имен и на уровне абсолютных адресов.

Программа MAPSYM предназначена для создания символьного файла для SYMDEB. Символьный файл формируется на основе информации, полученной от MASM, и необходим для символьной отладки.

Утилита CREF может быть использована для формирования листинга перекрестных ссылок программы, наличие которого облегчает отладку.

При помощи утилиты MAKE процесс разработки программ может быть автоматизирован. В файле описаний MAKE могут быть заданы различные алгоритмы вызовов и взаимодействия программ пакета (и не только их).

Кроме указанных программ, для создания ассемблерных исходных файлов необходим также редактор текстов, работающий в коде ASCII без управляющего кода. Многие редакторы текстов, которые обычно используют управляющие коды или другие специальные форматы в документах, обеспечивают также программирование или недокументированный режим для формирования ASCII-файлов.

Пакет макроассемблера работает в операционной системе MS-DOS или PC-DOS версии 2.0 и выше и требует наличия минимум 128К памяти (использование команды SYMDEB может потребовать дополнительной памяти).

Макроассемблер обеспечивает выполнение следующих функций:

1. Анализ исходного текста на языке ассемблера на предмет наличия в нем макрокоманд и/или макроопределений и обработка этих конструкций с соответствующей коррекцией исходного текста.

2. Синтаксический анализ полученного текста и вывод необходимой диагностической информации.

3. Формирование объектного модуля[9].

 

 

3.2.3. Netwide Assembler

 

Расширенный Ассемблер NASM это 80x86 Ассемблер, разработанный исходя из принципов переносимости и модульности. Он поддерживает широкий диапазон форматов объектных файлов, включая форматы Linux a.out и ELF, NetBSD/FreeBSD, COFF, Microsoft 16-bit OBJ и Win32. Он способен также создавать простые бинарные файлы. Синтакс NASM максимально упрощен для понимания и похож на синакс Intel, но слегка посложнее. Он поддерживает инс?/p>