Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Создание и отладка программы с использованием TASM, TLINK, TD.




Для выполнения лабораторных работ по курсу «Цифровые устройства и микропроцессоры» необходимо самостоятельно разработать и отладить небольшие программы на ассемблере в соответствии с заданными преподавателем вариантами. На рис. 1 приведена общая схема процесса разработки программы на ассемблере.

 

 

1. Ввод исходного текста программы      
       
       
  Текстовый   primer. asm
  редактор    
     
2. создание объектного модуля      
       
  Трансляция   primer. obj
  программы   primer. lst
  TASM   primer. crf
       
3. Создание загрузочного модуля      
       
Компоновка    
  программы    
TLINK   primer. exe
       
4. Отладка программы      
  Отладка    
программы    
  TD    
         

 

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

 

На первом этапе для ввода кода программы можно использовать любой текстовый редактор, который не вставляет в текст спецсимволов редактирования. Для экономии ресурсов ПК и времени разработчика рекомендуется запустить ПК в режиме MS-DOS и использовать встроенный редактор NC. Полученный текстовый файл должен иметь расширение.asm.

Программы, реализующие остальные этапы разработки, входят в состав программных пакетов ассемблера. Наиболее широкое распространение среди пакетов ассемблеров для процессоров Intel получили два пакета: «макроассемблер» MASM фирмы Microsoft, и Turbo Assembler фирмы Borland. Пакет MASM получил свое название потому, что позволял программисту задавать макроопределения (макросы), представляющие собой именованные группы команд.Эти группы можно вставлять в любом месте программного кода, указав лишь имя группы. Пакет Turbo Assembler фирмы Borland имеет два режима работы. Один из этих режимов, называемый MASM, поддерживает все основные возможности макроассемблера MASM. Другой режим, называемый Ideal предоставляет более удобный синтаксис написания программ, более эффективное использование памяти при трансляции программ и некоторые другие преимущества.

Так как программы пакета Turbo Assembler фирмы Borland входят в состав таких популярных продуктов как Turbo C++ и Turbo Pascal, уже используемых в учебном процессе, дальнейшее рассмотрение этапов разработки программ проиллюстрировано использованием именно этого пакета

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

 

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

 

Необязательный аргумент [опции] позволяет задать режим работы транслятора TASM. Для получения представления об этих опциях следует воспользоваться литературой [1-6].

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

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

 

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

 

Также, как и в предыдущем примере командной строки для TASM, параметры, указанные в квадратных скобках, необязательны.

После получения исполняемого модуля можно приступить к тестированию и отладке программы. При использовании отладчика Turbo Debugger (TD) программисту предоставляются следующие возможности:

- выполнение трассировки программы в прямом направлении;

- выполнение трассировки программы в обратном направлении;

- просмотр и изменение состояния аппаратных ресурсов микропроцессора во время покомандного выполнения программы.

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

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

1. С помощью встроенного редактора NC получить исходный текст кодов программы с расширением.asm. В исходном тексте программы обязательно должна быть определена метка для первой команды, с которой начинается выполнение программы. Имя этой метки обязательно нужно указывать в конце программы в качестве операнда директивы END:

.......

main

...

 

END main

2. Для сохранения возможности отладки на уровне исходного текста исходный модуль должен быть оттранслирован с опцией /zi:

TASM /zi primer_1.asm

 

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

3. Компановка модуля должна осуществляться с опцией /v:

 

TLINK /v primer_1.obj

 

Опция /v указывает на необходимость сохранения отладочной информации в исполняемом файле.

4. Запуск отладчика производится из командной строки с указанием исполняемого модуля программы:

 

TD primer_1.exe

 

Управление работой отладчика ведется с помощью двух типов меню:

- глобального меню – находится в верхней части экрана и доступно постоянно. Вызов пунктов меню производится нажатием клавиши F10 или указателем «мыши»;

- локального меню – для каждого окна отладчика можно вызвать его собственное меню, которое отражает особенности данного окна. Вызвать данное меню можно активизировав окно и щелкнув правой кнопкой «мыши» или нажав Alt-F10.

Для детального изучения работы модуля и использования ресурсов процессора следует выбрать пошаговый режим выполнения программы.

Для активизации этого режима нужно нажать клавиши F7 (Run/Trace into) или F8 (Run/Step over). Отличие в режимах работы проявляется при использовании переходов в процедуру или прерываниях.

Кроме окна Module, в некоторых случаях открывающегося по умолчанию, полезно использовать окно CPU. Последнее состоит из пяти подокон:

- окна с исходной программой в дизассемблированном виде;

- окна регистров микропроцессора Registers, отражающего текущее содержимое регистров процессора. По умолчанию здесь установлена программная модель i8086. Для переключения на регистровую модель i486 или Pentium выберите из локального меню команду Registers 32-bit -Yes;

- окна флагов, которые отражают текущее состояние флагов микропроцессора в соответствии с их мнемоническими названиями;

- окна стека Stack, отражающего содержимое памяти, выделенной для стека.Адрес области стека определяется автоматически по содержимому регистров SS и SP;

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

 

Прервать выполнение программы можно нажатием клавиш Ctrl+F2.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных