Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программные средства АПК / ASSEMBLER / Создание программы.doc
Скачиваний:
47
Добавлен:
15.04.2015
Размер:
137.22 Кб
Скачать

Создание программы на ассемблере

Цель работы - знакомство со специальными программными средствами, предназначенными для преобразования исходных текстов на ассемблере к виду, приемлемому для выполнения на компьютере. Процесс разработки программы состоит из нескольких этапов:

  • постановка и формулировка задачи,

  • проектирование,

  • кодирование,

  • отладка и тестирование,

  • эксплуатация и сопровождение:

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

У существующих реализаций ассемблера нет интегрированной среды, подобно интегрированным средам Turbo Pascal, Turbo C или Visual C++. Поэтому для выполнения всех функций по вводу кода программы, ее трансляции, компоновке, редактированию и отладке необходимо использовать отдельные служебные программы.

На рис.1 приведена общая схема процесса разработки программы на ассемблере. На схеме выделено четыре шага этого процесса.

На первом шаге, когда вводится код программы, можно использовать любой текстовый редактор. Основным требованием к нему является то, чтобы он не вставлял посторонних символов (спецсимволов редактирования). Файл должен иметь расширение .asm.

Программы, реализующие остальные шаги схемы, входят в состав программного пакета ассемблера. На рынке ассемблеров для микропроцессоров фирмы Intel имеется два пакета:

  • ''Макроассемблер'' (MASM) фирмы Microsoft.

  • Turbo Assembler (TASM) фирмы Borland.

Пакет TASM интересен тем, что имеет два режима работы. Один из этих режимов, называемый MASM, поддерживает все основные возможности макроассемблера MASM. Другой режим, называемый IDEAL, представляет более удобный синтаксис написания программ, более эффективное использование памяти при трансляции программы и другие новшества, приближающие компилятор ассемблера к компиляторам языков высокого уровня.

В эти пакеты входят трансляторы, компоновщики, отладчики и другие утилиты для повышения эффективности процесса разработки программ на ассемблере. Транслятор TASM, работая в режиме MASM, поддерживает почти все возможности транслятора MASM.

ТекстовыйPRG.ASM

редактор

ТрансляцияPRG.OBJ

программы PRG.LST

TASM.EXE PRG.CRF

КомпоновкаPRG.MAP

программыPRG.EXE

TLINK.EXEPRG.LIB

Отладка

программы

TD.EXE

Рис.1. Процесс разработки программы на ассемблере

      1. Ввод исходного текста программы

Смотри порядок выполнения работы!

2. Создание объектного модуля (трансляция программы)

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

Для получения объектного модуля исходный файл программы на ассемблере, который должен быть предварительно подготовлен и записан на диск, необходимо подвергнуть трансляции при помощи программы tasm.exe из пакета TASM. Формат командной строки для запуска tasm.exe следующий:

TASM [опции] имя_исходного_файла [,имя_объектного_файла] [,имя_файла_листинга] [,имя_файла_перекрестных_ссылок]

Если вы забыли формат командной строки и возможные значения параметров, то получить быструю справку на экране монитора можно запустив файл tasm.exe без задания каких-либо аргументов. Обратите внимание, что большинство параметров заключено в квадратные скобки. Это общепринятое соглашение по обозначению параметров, которые могут отсутствовать.

Таким образом, обязательным аргументом командной строки является имя_исходного_файла. Этот файл должен находиться на диске и обязательно иметь расширение .asm. За именем исходного файла через запятую могут следовать необязательные аргументы, обозначающие имена объектного файла, файла листинга и файла перекрестных ссылок.

Если имена объектного файла , файла листинга и файла перекрестных ссылокдолжны совпадать с именем исходного файла (наиболее типичный случай), то нужнопростопоставитьзапятыевместо имен этих файлов:

TASM /zi prog,,,

Применение опции /zi разрешает транслятору сохранить связь символических имен в программе и их смещений в системе кода, что позволит отладчику производить отладку,используя оригинальные имена. В результате будут созданы файлы, как показано на рис. 1 для шага 2.

Если имена объектного файла, файла листинга и файла перекрестных ссылок не должны совпадать с именем исходного файла, то нужно в соответствующем порядке в командной строке указать имена соответствующих файлов, к примеру:

TASM /zi prog,,proglist,

В результате на диске будут созданы файлы:

  • prog.obj

  • proglist.lst

  • prog.crf

Если требуется выборочное создание файлов, то вместо ненужных файлов необходимо подставить параметр nul. например:

TASM /zi prog,,nul,

В результате на диске будут созданы файлы:

  • prog.obj

  • prog.crf

Логика работы программы для транслятора не имеет никакого значения. Вы можете написать абсолютную чушь, но если она будет синтаксически правильна, транслятор поспешит вас обрадовать, сообщив, что всё хорошо. Наличие строки Warning означает, что конструкция синтаксически правильна, но не соответствует некоторым соглашениям языка и это может послужить источником последующих ошибок.

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

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

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

Для локализации ошибок лучше использовать информацию из специального, создаваемого транслятором файла листинга. Этот файл имеет расширение .lst; его имя определяется в соответствии с теми соглашениями, которые мы разобрали выше.

Ниже приведен полный формат листинга для программы, содержащей некоторые ошибки. Листинг- очень важный документ, и ему нужно уделить должное внимание.

Turbo Assembler Version 3.1 13/09/09 15:10:55 Page 1

Prog.asm

Соседние файлы в папке ASSEMBLER