Эволюция языка программирования 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>