Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания1.doc
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
130.05 Кб
Скачать

Лабораторная работа n1 изучение программы-отладчика, регистров и команд микропроцессора Intel-8088

1.ЦЕЛЬ РАБОТЫ: Изучить инструмент (DEBUG), позволяющий работать непосредственно с микропроцессором, машинные коды и псевдокоды, систему адресации, регистры и важнейшие команды микропроцессора.

2.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ.ПРОГРАММА-ОТЛАДЧИК DEBUG.

Указанная программа предназначена для написания и отладки программ для i8088 с использованием машинных кодов или псевдокодов, сходных с командами языка программирования Ассемблер.

Отладка - это процесс нахождения и исправления ошибок в программе.

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

При отладке программы обычно выполняется какая-то ее часть и проверяется правильность ее работы в текущей точке останова.

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

DEBUG позволяет управлять процессом выполнения программы различными способами. Вы можете:

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

  • ввести новую программу с использованием машинных команд или псевдокодов,

  • посмотреть и при необходимости изменить содержимое регистров и флагов,

  • выполнить одну или более машинных команд,

  • выполнять вызовы процедур и функций, не входя в них,

  • выполнять программу до конкретного заданного места,

  • выполнять программу до точки останова,

  • сохранить в виде файла созданную или измененную программу.

В данной лабораторной работе рассмотрим лишь часть команд Debug.

Запуск программы производится командой Debug, после которой можно задать имя отлаживаемой программы. Далее появляется знак "-" - приглашение к вводу команды. Команды отладчика:

Q - (Quit-прекратить), завершить работу с Debug.

D - (Display-показать),просмотр информации(можно с указанием номера начальной ячейки памяти или с указанием номера начальной и конечной ячейки памяти); Например D 100 или D 100 120.

E - (Enter-Ввод), ввод данных с использованием машинных кодов, начиная с номера ячейки, указанной после команды E.

R - (Register), просмотр значений регистров. При вводе с указанием имени регистра (например, R AX) можно менять его значение.

После выполнения команды на экране появляются следующие данные:

1.Содержимое всех регистров в виде 16-ричных кодов и состояние флагов.

2.16-ричное содержимое ячеек памяти начиная с номера, указанного в регистре IP и сегмента, указанного в регистре CS.

3.Псевдокод, соответствующий указанному содержанию. Например:

-R

AX=0000 BX=0000 CX=001A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=1B07 ES=1B07 SS=1B07 CS=1B07 IP=0100 NV UP EI PL NZ NA PO NC

1B07:0100 EB05 JMP 0107

U - (Unassemble- дизассемблировать), команда транслирует машинные коды в псевдокоды, сходные с командами языка Ассемблера. Позволяет просмотреть

программу с использованием псевдокодов.

A - (Assemble), ввод псевдокодов, начиная с номера ячейки, указанной после команды.

G -(Go-идти), запуск исполнения программы, можно с указанием адреса останова;

T -(Trace-трассировка), пошаговое выполнение программы с входом в подпрограммы, в том числе в подпрограммы INT - подпрограммы прерываний.

P -(Proceed-продолжить) пошаговое выполнение программы без входа в подпрограммы.

H -(HEX)сложение и вычитание двух 16-ричных чисел, например E ff 5.

? -помощь по командам Debug.

W - (Write)сохранение содержимого оперативной памяти начиная с указанной после W ячейки в виде файла. Предварительно с помощью команды N (Name) задать полное имя файла. Например, N D:\RAF\Name.com. Расширение COM позволит правильно подготовленную программу запускать обычным образом. В регистрах BX и CX указать размер файла в байтах с использованием 16-ричного исчисления. Для небольших файлов значение в регистре BX равняется нулю.

Для определения размера COM- файла необходимо определить с использованием DEBUG номер последней ячейки программы, в которой хранится команда RET. Из этого значения нужно вычесть 100. Это номер ячейки с которого начинается COM-файл. Далее к полученному значению прибавить 1 (т.к. программа начинается не с 101, а с 100 ячейки).

Пример записи в файл:

-u 110 119

1B07:0110 3BC3 CMP AX,BX

1B07:0112 7D05 JGE 0119

1B07:0114 050100 ADD AX,0001

1B07:0117 EBF7 JMP 0110

1B07:0119 C3 RET

-n d:\raf\name.com

-r bx

BX 0000

:0

-r cx

CX 001A

:A

-w 110

Запись: 0000A байт