- •Методические указания
- •Методические указания
- •Содержание
- •Введение
- •Теоретическая часть краткая информация о пэвм ibm pc
- •Регистры
- •Организация памяти
- •Использование сегментного регистра
- •Режимы адресации
- •Пространство ввода/вывода
- •Прерывания
- •Представление чисел в эвм
- •Лабораторная работа n1 изучение программы-отладчика, регистров и команд микропроцессора Intel-8088
- •3.Порядок выполнения работы
- •Лабораторная работа n2 написание и отладка управляющих программ с использованием псевдокодов
- •3.Порядок выполнения работы
- •Лабораторная работа n3 написание и отладка управляющих программ на языке ассемблера
- •Приложения
- •1.Справка о командах ассемблера
- •Список использованных источников
- •Методические указания
Лабораторная работа 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 байт