1 цель работы


Скачать 73.45 Kb.
Название 1 цель работы
Тип Лабораторная работа
rykovodstvo.ru > Руководство эксплуатация > Лабораторная работа
Лабораторная работа № 1

Трансляция, компоновка и отладка программ
1 ЦЕЛЬ РАБОТЫ
Целью работы является освоение инструментальных средств создания и отладки программ на языке ассемблера.
2 ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
2.1 Последовательность формирования исполняемого файла
У большинства существующих реализаций ассемблера нет интегрированной среды, подобной Turbo Pascal или Turbo C. Поэтому для выполнения функций по вводу кода программы, ее трансляции, редактированию и отладке необходимо использовать отдельные служебные программы.

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






Ассемблирова-ние (MASM)

Компоновка (LINK)

Отладка (TD, DEBUG)

Ввод текста







Рис. 1. Процесс подготовки исполняемого файла
В процессе формирования программы на языке ассемблера выделено 4 этапа:

  • ввод исходного кода программы текстовым редактором,

  • трансляция программы,

  • создание загрузочного модуля,

  • отладка программы.

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

Следующим шагом формирования программы является компиляция, которая носит специфическое название ассемблирование. Этот этап может быть выполнен программами ASM, MASM или TASM (сложность программ-компиляторов растет в указанной последовательности). Результатом выполнения этого этапа является программа в машинных кодах с расширением .obj, или, иначе, объектная программа, уже “понятная” микропроцессору. Естественно перевод состоится лишь в том случае, если исходный текст программы не содержит ошибок. Одновременно с объектным файлом могут быть созданы файлы листинга (*.lst ) и перекрестных ссылок (*.crf). Рекомендуется файл листинга создавать обязательно, поскольку при наличии ошибок в листинге описывается характер ошибки сразу после ошибочной команды, что значительно упрощает внесение исправлений, особенно на этапе обучения.

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

<�глубина_вложенности>, <�номер_строки>, <�смещение>, <�машинный_код>, <�исходный код>,

где <�глубина_вложенности> - уровень вхождения программного блока (программы, модуля, макроопределения, процедуры) в файл, <�номер_строки> - номер строки в файле листинга, он фигурирует в сообщениях об ошибках, но не обязательно совпадает с номером команды в исходном тексте, <�смещение> - смещение в байтах текущей команды относительно начала сегмента кода, <�машинный_код> - машинное представление команды ассемблера, записанной правее в той же строке в поле <�исходный код> , а <�исходный код> является не чем иным, как записанной Вами командой языка ассемблер.

Однако объектная программа еще не является законченной и исполняемой, т.к. в ней определены не все адреса (программа не является “перемещаемой”) и не объединены части (блоки) программы, которые могут транслироваться отдельно с целью более простой отладки. Преобразование объектной программы в исполняемую (компоновка) выполняется загрузчиком (редактором связей) LINK либо TLINK (в зависимости от используемой программы ассемблирования: для ASM, MASM – LINK, для TASM – TLINK).

Чтобы проверить работоспособность созданной программы и увидеть результаты ее работы (если не использован вывод на дисплей), применяют программу отладчик. Тестирование и отладка исполняемой программы выполняется отладчиком TD или DEBUG.

Отладчик td.exe, разработанный фирмой Borland International представляет собой оконную среду отладки программ на уровне исходного текста на языках Pascal, C, ассемблер. Основные возможности отладчика, наиболее широко используемые студентами - это:

  • выполнение трассировки программы в прямом направлении, при котором за 1 шаг выполняется одна машинная инструкция;

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

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

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

  • локального, учитывающего особенности окон и становящегося активным щелчком правой мыши или нажатием клавиш Alt+F10.

Специфика программы на ассемблере в том, что делать выводы о правильности ее функционирования можно, отслеживая работу на уровне микропроцессора, обращая внимание на то, как изменяется состояние ресурсов микропроцессора и компьютера в целом. Общее поведение программы позволяет просмотреть режим безусловного выполнения, который вызывается нажатием клавиши F9. Однако для детального изучения работы программы рекомендуется применять режим выполнения программы по шагам, для вызова которых выбираются пункты меню Run -> Trace into (прерывание или внутренняя процедура будут выполняться по шагам) или Run -> Step over (вызов процедуры или прерывание отрабатываются как одна обычная команда). При этом используется окно CPU, вызов которого осуществляется через глобальное меню командой View -> CPU. Окно CPU состоит из 5 подчиненных окон:

- окно с исходной программой в машинных кодах,

- окно регистров микропроцессора, отражающее текущее состояние регистров,

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

- окно стека, в котором отражается содержимое области памяти, отведенной для стека,

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

Рекомендуемый порядок работы с отладчиком:

а) вызвать на выполнение td.exe.;

б) выбрать файл исполняемой программы, набрав комбинации клавиш FILE ->OPEN и имя Вашей программы в окне запроса. После ответа OK на сообщение об отсутствии символьной таблицы в окно CPU загружается программа с нулевого адреса относительно начала сегментного регистра кодов (для приведенного в конце описания лабораторной работы примера это будет команда PUSH DS);

в) выбрать режим пошагового выполнения Run -> Step over. В окне CPU появляется окрашенный треугольник между относительным адресом команды и машинным кодом команды. Он показывает очередную команду, которая будет выполнена процессором после нажатия функциональной клавиши F8. Изменения, которые происходят в сегментных регистрах после выполнения команды, отмечаются белым цветом соответствующей строки в окне регистров. Пошаговый процесс выполнять до тех пор, пока не появится сообщение об окончании программы (с ключевым словом terminated);

г) после выполнения команд, связанных с изменением содержимого ячеек памяти, нужно просматривать эти изменения командой VIEW -> DUMP. При отсутствии мыши скрыть окно дампа памяти можно нажатием функциональной клавиши F6.
2.2. Пример программы на Ассемблере

; lab1.asm - упрощенная версия учебной программы

; по дисц. "Программирование"

; *****************************************************************

; Назначение: Программа формирует и выводит на экран приветствие

; пользователя с помощью функции ДОС "Вывод строки"

; (номер 09 прерывание 21h), которая:

; - обеспечивает вывод на экран строки символов,

; заканчивающейся знаком "$";

; - требует задания в регистре ah номера функции=09h,

; а в регистре dx - смещения адреса выводимой строки;

; - использует регистр ax и не сохраняет его содержимое.

; ******************************************************************
.MODEL SMALL ; Модель памяти-SMALL(Малая)

.STACK 100h ; Отвести под Стек 256 байт

.DATA ; Начало сегмента данных

Grt DB 'Вас приветствует ст.гр.8811 - Иванов И.И.',13,10,'$'

; Текст приветствия
.CODE ; Начало сегмента кода

Main: mov ax,@data ; Загрузка в DS адреса начала

mov ds,ax ; сегмента данных

mov dx,OFFSET Grt ; Загрузка в dx смещения

; адреса текста приветствия

DisplayGreeting:

mov ah,9 ; # функции ДОС печати строки

int 21h ; вывод на экран приветствия

mov ah,4ch ; # функции ДОС завершения программы

int 21h ; завершение программы и выход в ДОС

END main

3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ


  1. Загрузить файл lab1.asm, просмотреть программу и разобраться в структуре и реализации сегментов.

  2. Строку-приветствие преобразовать в соответствии со своими личными данными.

  3. Протранслировать программу с помощью команды

> tasm имя_файла.asm

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

Повторить трансляцию программы до получения объектного модуля.

4. Скомпоновать загрузочный модуль с помощью строки

> tlink имя_файла.obj

5. Выполнить программу в автоматическом режиме путем набора строки

> имя_файла.exe

и убедиться в ее работоспособности.

6. Включить в программу вывод еще одной строки-сообщения с любым текстом по аналогии с выводом строки-приветствия и присвоить ей имя My_program.asm. Протранслировать, скомпоновать загрузочный модуль и выполнить прогон программы My_program в автоматическом режиме.

7. Выполнить программу My_program в пошаговом режиме под управлением отладчика:

> td имя_файла.exe

с фиксацией содержимого используемых регистров и ячеек памяти до и после выполнения команды. Записать содержимое всех регистров процессора перед выполнением 1-ой команды.

Результаты прогона программы под управлением отладчика должны быть представлены в виде, показанном на примере одной команды в табл.

Похожие:

1 цель работы icon 1. Цель и задачи работы
Цель работы – изучение конкурентных практических умений и навыков безопасной работы с торговым оборудованием, законодательными и...
1 цель работы icon И цель лабораторной работы
Цель работы – изучение физических процессов, происходящих в волоконно-оптической линии связи, изучение процессов модуляции и демодуляции...
1 цель работы icon Анализ методической работы школы за 2013-2014 учебный год Цель анализа
...
1 цель работы icon Магистерская диссертация
Цель. Цель работы состояла в разработке нового подхода к оценке стоимости брэнда компании
1 цель работы icon Абсолютный метод спутникового позиционирования. Спутниковый навигационный...
Цель работы. Студенты должны ознакомиться с абсолютным методом спутниковых определений координат, научиться конфигурировать спутниковые...
1 цель работы icon Лабораторная работа №2 Разработка цифровой системы фильтрации сигнала. Цель работы
Цель работы: разработка собственной системы обработки сигнала, реализующей ких-фильтрацию, на базе типового аппаратного и программного...
1 цель работы icon Карта-инструкция Практическая работа №4 «Получение водорода» Цель работы
Цель работы: закрепить знания учащихся о способах получения водорода, продолжить формировать умения и навыки пользования лабораторным...
1 цель работы icon План работы по профилактике детского дорожно-транспортного травматизма Формы работы
Цель: ознакомление педагогов с особенностями организации и выполнения форм работы по данной проблеме
1 цель работы icon Лабораторная работа №1 Разработка описания и анализ информационной...
Цель работы: описать и проанализировать информационную систему, распределить роли в группе разработчиков
1 цель работы icon Описание практической работы №2 создание шаблона сайта
Цель работы: изучение и освоение принципов работы с html тегами, их атрибутами и умение создавать базовые элементы web–страницы
1 цель работы icon Тема занятия: «Ретушь иллюстраций. Создание зимнего пейзажа». Цель занятия
Цель занятия: познакомиться с понятием ретуширования и продолжить формирование у учащихся навыков работы с изменением цветового решения...
1 цель работы icon Рекомендации для выполнения контрольной работы
Контрольная работа должна быть выполнена в соответствии с учебным планом. Главная цель контрольной работы – показать навыки работы...
1 цель работы icon Техническое задание на выполнение кровельных работ Цель и назначение работы
Цель выполнение работ по ремонту кровли блока а здания ао «нпц «Вигстар», расположенному по адресу: г. Москва, 1-й Дорожный проезд,...
1 цель работы icon Вариант 1 Ответьте на вопросы: можно ли в Приморском крае услышать,...
Цель работы: закрепить навыки работы с информационно– право-вой системы Консультант Плюс по поиску правовых документов и организации...
1 цель работы icon Контрольные вопросы по теме: Для успешной работы на практическом занятии
Цель занятия: Ознакомиться с устройством светового микроскопа, с правилами работы с ним и методами изготовления микропрепаратов
1 цель работы icon Инструкционные карты лабораторных и практических работ Инструкционная...
Цель работы: выработка умения заполнять маршрутно-технологическую документацию на монтаж внутрицеховых сетей

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск