Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_1.DOC
Скачиваний:
2
Добавлен:
25.08.2019
Размер:
595.97 Кб
Скачать

1. Предварительные сведения

1.1. Подготовка программ на языке ассемблера

Как уже отмечалось, язык ассемблера отражает архитектурные особенности компьютера. Для каждого семейства компьютеров используется свой язык ассемблера и свои программы для обработки исходного текста ассемблерных программ. Здесь рассматривается язык ассемблера для семейства персональных IBM-совместимых компьютеров (IBM PC), получивших сегодня повсеместное распространение. Компьютеры IBM-PC базируются на микропроцессорах семейства x86, выпускаемых фирмой Intel и конкурирующими компаниями. Однако и здесь существует несколько разных версий ассемблеров, разработанных различными производителями программного обеспечения. Среди выпущенных пакетов ассемблеров наиболее популярными являются TASM фирмы Borland и MASM фирмы Microsoft.

Исходный текст программы на языке ассемблера представляет собой "чистый" текстовый файл (содержащий неформатированный текст) с расширением ASM. Для обработки исходного текста используется как минимум две программы: непосредственно ассемблер, переводящий мнемонические команды процессора в машинный код (объектный файл определенного формата с расширением OBJ), и компоновщик (редактор связей), преобразующий OBJ-файл в исполнимый модуль (EXE или COM), а также объединяющий несколько объектных модулей, если они указаны. Помимо этого для разных целей могут потребоваться дополнительные вспомогательные программы — компиляторы ресурсов, расширители DOS и т. п.

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

Запуском программы-ассемблера с определенными ключевыми параметрами можно инициировать создание файла-листинга. Листинг представляет собой текстовый файл с расширением LST, содержащий исходный текст программы с указанием номеров строк, относительных адресов команд и данных, машинное представление команд и данных (в 16-ричной системе счисления), список свойств переменных, меток и сегментов, сообщения об ошибках и прочую служебную информацию. Файл листинга разбивается на страницы, снабжается колонтитулами и управляющими кодами принтера (для управления разбиением можно использовать директивы PAGE и TITLE) и, таким образом, подготовлен для печати в текстовом режиме принтера.

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

На этапе компоновки происходит связывание отдельных частей программы в единый исполнимый модуль. Формат этого модуля зависит от используемой операционной системы. В MS-DOS используется два различных формата исполнимых модулей — EXE и COM. Во время обработки объектного кода программа-компоновщик проверяет правильность размещения данных в сегментах, наличие стека и другие особенности объектного модуля, часть из которых зависит от формата создаваемого исполнимого файла (EXE или COM). При наличии некритичных несоответствий, например, при отсутствии стека, компоновка файлов все же может выполниться, тогда на экран будут выданы соответствующие предупреждения.

Кроме грубых синтаксических ошибок, фиксируемых на этапе трансляции и компоновки, в программе могут встречаться логические ошибки (ошибки в алгоритме программы или несоответствия алгоритму, отсутствие необходимых действий или проверок и т. п.), приводящие к неправильному функционированию готового исполнимого модуля. Для выявления таких ошибок в состав пакетов ассемблеров, как правило, входит программа-отладчик. В ее задачу входит обеспечение пошагового или поблочного выполнения программы, отображение текста программы в машинном и ассемблерном форматах с указанием адресов размещения команд и данных в памяти, отображение и возможность модификации содержимого регистров процессора и областей оперативной памяти. Обычно отладчик позволяет также дизассемблировать программу в машинном коде, то есть, не имея исходного текста, преобразовывать машинный код в последовательность мнемонических команд языка ассемблера.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]