Главная страница

Методические указания для практических занятий по дисциплине мдк. 02. 01


Скачать 7.37 Mb.
НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
Дата09.09.2022
Размер7.37 Mb.
Формат файлаpdf
Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
ТипМетодические указания
#669073
страница8 из 43
1   ...   4   5   6   7   8   9   10   11   ...   43

Команда записи области памяти в файл.
Команда WRITE (w или W) переписывает на диск данные, выбирая их из памяти. При этом спецификация создаваемого файла должна задаваться с помощью команды NAME.
Перед введением команды WRITE в регистры BX и CX записывается размер занимаемой файлом памяти в байтах (шестнадцатеричное число, занимающее 4 байта). Поэтому перед записью необходимо проверить содержимое этих регистров (с помощью REGISTER).
В командной строке WRITE можно указать начальный адрес памяти, по которому производится чтение данных с последующей записью их на диск. Если указан короткий адрес, то адрес сегмента выбирается из регистра CS.
Если начальный адрес не указан, то запись производится, начиная с адреса CS:0100.
Команда выхода из отладчика.
Чтобы выйти из отладчика и передать управление операционной системе, на его стандартный запрос вводится команда q:
-q
Содержание работы.
1. Ознакомиться с теоретическим материалом.
2. В соответствии со своим вариантом (пример для ассемблирования) опробовать команды
DEBUG.
Варианты заданий.
1
MOV AL,20
MOV BL,10
ADD AL,BL
SUB BL,3
AND AX,BX
14
INC DH
MOV DL,00
AND AX,DX
NOT AX
MOV BX,AX
2
MOV AX,1111
MOV BX,2
MUL BX
INC AX
XOR AX,FFFF
15
MOV AL,03
DEC AL
CMP AL,00
JNE 103
MOV DX,0F0E
3
MOV BL,FF
PUSH BX
DEC BL
POP AX
SUB AX,BX
16
MOV BX,100
SUB BX,AX
NEG AX
INC BX
ADD BX,AX
4
MOV AX,7
CMP AX,4
JNE 10C
MOV BL,7
DIV BL
17
MOV BX,13
DEC BX
MOV AX,BX
IDIV BL
MOV BL,AL

48 5
MOV BX,FF00
ROR BX,1
NOT BX
SUB BX,0F
CMP AX,BX
18
MOV DX,FFFF
MOV AX,1111
NOP
AND DX,AX
NOT DX
6
MOV AX,3003
DEC AH
INC AL
AND AX,04
XOR AX,FFFF
19
INC AX
CMP AX,FFFF
JNE 100
NEG AX
MOV CX,AX
7
AND AX,40
JNZ 109
MOV BX,FFEE
NOP
CMP BX,FFEE
20
STC
MOV AL,F1
MOV BL,0F
ADC AL,BL
CLC
8
MOV AX,000F
ROR AX,1
MOV BX,0330
OR AX,BX
XOR AX,0 21
POP CX
MOV AX,0FFF
DIV CL
ROL AX,CL
PUSH AX
9
DEC AX
NOT AX
MOV CL,05
MUL CL
NEG AX
22
NOT AX
NOP
RCR AX,1
ADC AX,2EA
SUB AX,0A
10
POP BX
POP AX
SUB AX,BX
MOV DX,AX
NEG AX
23
MOV CL,20
MOV CH,20
AND CH,CL
SUB CX,20
IMUL CX
11
XOR BH,BH
MUL BH
CMP AX,0
JZ 10A
NOP
MOV AX,2000 24
NEG BX
MOV DX,300
ADD BX,DX
MOV AX,BX
PUSH AX
POP CX
12
MOV CL,15
MOV CH,15
PUSH CX
ADD CH,CL
POP AX
SUB AX,CX
25
NOP
INC AX
DEC BX
ADD AX,BX
AND AX,43
NOT AX
13
LAHF
STI
CLC
SAHF
MOV DX,FFF0
Практическая работа №8. Запись и выполнение простых команд: INR, DCRADD,
ANA, ORA, XRA. Запись и выполнение простых команд: DAA, RAR, SUB, SBB.

49
Цель: изучение правил записи прикладных программ с использованием директив
Ассемблера, ознакомление с программами Ассемблера и симулятора и приобретение навыков работы с кросс-средствами отладки.
Теоретическая часть.
Рассмотрим функционирование устройства пошагового выполнения программы.
Устройство пошагового выполнения программы переводит ОУ в состояние ожидания после выполнения очередного шага.
Вызов пошагового режима работы осуществляется переключателем
"РБ/ШГ",
выбор величины шага переключателем
"КМ/ЦК".
Для последующе- го шага необходимо нажать кнопку
"ШГ".
При этом после выполнения очередного шага на светодиодном индикаторе отображается состояние адресной вины, шины данных и регистра состояния
ОУ в двоичном коде.
Команды выполняются по машинным циклам
(1
¸
5
циклов в команде). Имеется десять типов машинных циклов и соответственно десять слов состояния (см. табл.1).
Таблица 1.
Состояние ОУ
Разряды регистра состояния ОУ
M
EM
I
NR
M
I
O
UT
H
LTA
S
TACK
W
O/
I
NTA
Выбор команды
1 0
1 0
0 0
1 0
Чтение памяти
1 0
0 0
0 0
1 0
Запись в память
0 0
0 0
0 0
0 0
Чтение стека
1 0
0 0
0 1
1 0
Запись в стек
0 0
0 0
0 1
0 0
Ввод
0 1
0 0
0 0
1 0
Вывод
0 0
0 1
0 0
0 0
Прерывание
0 0
1 0
0 0
1 1
Останов
1 0
0 0
1 0
1 0
Прерывание в останове
0 0
1 0
1 0
1 1
Перечислим органы управления.
Директивные клавиши служат для вызова директив и имеют следующие обозначения и назначения:
"П"
(Память)

чтение и изменение содержимого ячеек памяти,
"РГ"
(Регистр)

чтение и изменение содержимого регистров МП,
"СТ"
(Старт) – запуск программы пользователя,
"КС"
(Контрольная сумма)

определение контрольной суммы массива памяти: используется для контроля правильности ввода ранее отлаженной программы,
"ЗК"
(Заполнение константой)

заполнение массива памяти константой,
"ПМ"
(Перемещение массива)

перемещение массива в адресном пространстве памяти,
"ВП"
(Выполнить)

означает конец работы с директивой,
"¾"
(Пробел)

разделитель при вводе нескольких переменных.
Информационные клавиши служат для ввода адресов и данных в шестнадцатеричном коде и содержат шестнадцатеричные символы. Одновременно часть из них используется для ввода индентификаторов регистров МП:
А

аккумулятор,
В, С
,
D,
Е
– одноименные регистры,
8/Н
– регистр
H,
9/L

регистр
L,
F

регистр флагов (признаков),
4/РН

старший байт счетчика команд,
5/PL

младший байт счетчика команд,
6/SН

старший байт указателя стека,

50
7/SL

младший байт указателя стека.
На лицевой панели находятся пять кнопок управления:


включение/выключение УМК,
СБ
(Сброс)

устанавливает нулевой адрес в счетчике команд,
ПР
(Прерывание)

позволяет прервать выполнение программы,
РБ/ШГ
(Работа/Шаг)

используется для перевода выполнения программы в пошаговом режиме,
ШГ
(Шаг) –
каждое нажатие на кнопку ведет к выполнению одного шага,
КМ/ЦК

переключатель дискреты шага (КМ

шаг соответствует выполнению одной команды, ЦК

шаг соответствует выполнению одного машинного цикла).
Дисплей содержит 6 разрядов: четыре левых отображают адрес, два правых информацию
(в шестнадцатеричном коде).
При неправильной работе с клавиатурой в крайней левой позиции дисплея высвечивается символ “?”. Нажмите кнопку
²СБ²
для возвращения в исходное состояние.
Светодиодная индикация состоит из набора светодиодов (0 – светодиод не горит, 1 – горит).
Верхний ряд отображает состояние адресной шины (16 бит).
Второй ряд отображает состояние шины данных (8 бит).
Третий ряд отображает разряды регистра состояний (8 бит).
Подготовка УМК к работе
Установите кнопку

в отжатое состояние.
1. Подключите УМК к сети переменного тока
220
В.
2. Переключатель "РБ/ШГ" установите в отжатое состояние ″РБ″.
3. Включите УМК, нажав кнопку
.
4. Нажмите кнопку
"СБ".
При этом в крайней левой позиции дисплея должен появиться знак "–".
После этого УМК готов к работе.
Базовые рабочие процедуры
Внимание! Перед заданием директив с помощью управляющих клавиш необходимо
нажать ″СБ″.
Индикация и изменение содержимого памяти
Если необходимо узнать содержимое ячейки памяти ОЗУ с определенным адресом, то последовательно нажимают клавиши:
"П"
"АДРЕС"
"ВП", где "АДРЕС" – адрес в шестнадцатеричном коде. При этом в левых четырех разрядах дисплея высвечивается адрес, а в двух правых содержимое ячейки памяти.
Внимание! Пользователю доступен массив ОЗУ с адресами
0800 ¸
ОВFF.
Если необходимо посмотреть содержимое следующей ячейки, то надо нажать клавишу
″—
″.
Если информацию,
хранящуюся в
просматриваемой ячейке памяти надо изменить, то новые данные вводят с помощью информационных клавиш.
При этом новые значения высвечиваются в двух правых разрядах дисплея. После этого нажимают клавишу "ВП"
или для перехода к следующей ячейке клавишу "—".
Директива завершается нажатием клавиши ″ВП″.
Пример 1:– просмотрите и измените содержимое ячеек памяти:
0800
на
0801

0802

0803

0804
3A
00
0B
2F
32
01
0B
76

51

0805

0806

0807

Индикация и изменение содержимого регистров
Если надо узнать содержимое регистра, то последовательно нажимают клавиши:
"РГ"
"X"
"ЗП", где "Х"
- информационная клавиша, идентифицирующая регистр. На дисплее высвечивается идентификатор регистра, а в двух правых разрядах его содержимое.
Идентификаторы регистров:
А

аккумулятор;
В, С, Д, Е, Н,
L

регистры общего назначения (РОН),
F

регистр условий,
SL
- младший байт указателя стека,

- старший байт указателя стека,
PL
- младший байт счетчика команд,
РН
- старший байт счетчика команд.
Все регистры по
8
бит.Если содержимое просматриваемого регистра изменять не надо, то нажимают
″—″
и набирают идентификатор другого регистра. Если содержимое регистра надо изменить, то набирают новые данные в шестнадцатеричном коде (два символа) и нажимают клавишу "—".
После этого можно набирать идентификатор следующего регистра.
Для завершения директивы нажимают клавишу "ВП".
Заполнение массива памяти константой
Константа представляется в шестнадцатеричном коде двумя символами, адреса ячеек ОЗУ четырьмя символами.
Последовательность нажатия клавиш:
"ЗК" "АДРЕС
1" "¾"
"АДРЕС
2" "¾"
"К"
"ВП", где АДРЕС
1
– адрес первой ячейки массива памяти;
АДРЕС
2
– адрес последней ячейки массива памяти;
"К"
- константа в шестнадцатеричном коде(00
¸
FF)
Внимание! Заполнять только массив
0800
¸
ОВFF.
Перемещение массива памяти в адресном
пространстве
Последовательность нажатия клавиш:
"ПМ" "АДРЕС
1"
"—" "АДРЕС
2"
"—" "АДРЕС
3"
"ВП", где АДРЕС
1 –
начальный адрес перемещаемого массива;
АДРЕС
2
конечный адреса перемещаемого массива;
АДРЕС
3 –
новый начальный адрес массива.
Старый и новый массивы не должны перекрываться, иначе теряется информация.
Определение контрольной суммы массива памяти
Последовательность нажатия клавиш:
"КС" "АДРЕС
1"
"—"
"АДРЕС
2"
"ВП", где АДРЕС
1 –
начальный адрес массива памяти,
АДРЕС
2
– конечный адрес массива памяти.
После выполнения директивы на дисплее высвечивается контрольная сумма массива, представляющая собой сумму содержимого ячеек массива по модулю
256.
Запуск программы пользователя
Последовательность нажатия клавиш:
"СТ" "АДРЕС
1"
"—"
"АДРЕС
2"
"—"
"АДРЕС
3"
"ВП", где АДРЕС
1 –
начальный адрес программы,

52
АДРЕС
2
и АДРЕС
3 –
адреса выполнения прерывания программы (могут отсутствовать)
Состояние регистров микропроцессора при достижении адресов
2
и
3
сохраняется в ОЗУ, и управление передается программе "Монитор".
Пользователь может задать любую директиву.
Продолжение программы последует после повторного нажатия клавиши "ВП".
Внимание! Программа должна умещаться в пределах массива
0800
¸
0AFF
(1
кбайт).
Пошаговое выполнение программы
Имеются две разновидности пошагового выполнения программы: поцикловый режим "ЦК" и покомандный режим "КМ".
Для вызова пошагового режима:
- установите переключатель "РБ/ШГ" в положение "ШГ" (кнопка утоплена), при которой происходит подключение световой индикации;
- переключателем "КМ/ЦК" выберите один из режимов работы;
- передайте управление выполняемой программе.
После этого световая индикация отобразит начальный адрес программы, данные по этому адресу и содержимое регистра состояния.
Программа выполняется путем нажатия кнопки "ШГ".
Для выхода из пошагового режима установите переключатель "РБ/ШГ" в состояние "РБ"
(кнопка отжата) и нажмите кнопку "ШГ".
Прерывание
выполнения программы
Для прерывания выполнения программы необходимо нажать клавишу "ПР".
После этого пользователь может вызвать выполнение любой из существующих директив. Выполнение прерванной программы возможно, начиная с адреса останова или любого другого адреса.
Запись и
выполнение
программы
Микропроцессор БИС КР580ВМ80
имеет фиксированный набор команд. Программа записывается последовательно в массив памяти ОЗУ
0800
¸
0АFF. Для записи данных исследуемых программ используют ячейки ОЗУ с адресами
0B00
¸
0BFF.
Система команд микропроцессора
КР580ВМ80А
приведена в
Приложении
1.
Время выполнения команды измеряют в машинных тактах, равных периоду синхронизации
(0,5
мкс при ƒ
т
= 2
МГц).
Рассмотрим простейшую программу
(программа
1),
извлекающую число из ячейки памяти с адресом 0В00, инвертирующую его и записывающую результат в адрес памяти 0В01.
Программа
1

мнемокодах)
Мнемокод
Комментарий
LDA
0B00
Получить число из ячейки с адресом 0B00
CMA
Инвертировать число
STA
0B01
Записать результат по адресу
0В01
HTL
Прервать выполнение программы
При записи программ все числа представляются в шестнадцатеричной системе счисления.
Для записи программы в память необходимо перевести мнемокоды команд в машинные коды. Команды в программе могут быть одно–, двух– или трехбайтные и должны в памяти занимать соответственно один, два или три адреса.
Программа
1
(размещение по адресам памяти)
Адрес
Число
Комментарий
0800 3A
Код команды
LDA
0801 00
Младший байт адреса
0802 0B
Старший байт адреса
0803 2F
Код команды
CMA
0804 32
Код команды
STA
0805 01
Младший байт адреса
0806 0B
Старший байт адреса
0807 76
Код команды
HLT

53
В
программе
1
используется прямой способ адресации.
Приведем аналогичную программу с косвенной адресацией
(программа 2).
Программа
2
(общий вид записи)
Адрес
Машинный код
Мнемокод
Комментарий
0800 21 00 0B
LXI H
0B00
Записать в регистры
H,
L
число
0В00.
0803 7Е
MOV
A, M
Получить число из адреса указанного в регистрах
H,
L.
0804 2F
CMA
Инвертировать число в аккумуляторе.
0805 23
INX
H
Увеличить на
1 число в регистрах
H,L.
0806 77
MOV
M, A
Записать число из аккумулятора по адресу указанному в регистрах
H,
L. (0В01)
0807 76
HLT
Прервать выполнение программы.
Задание для
домашней
подготовки
1. Изучить устройство УМК и порядок работы с ним.
2.
Ознакомьтесь с языком программирования и
структурой команд
МП
БИС
КР580.
3.Изучите команды пересылки и загрузки, команды арифметических и логических операций.
4. Определите результат выполнения программы
1
при записи различных однобайтовых команд по адресу
0803,
и занесите их в таблицу
Команда записанная по адресу
0803
Число записанное по адресу
0В00.
Число записанное по адресу
0В01.
CMA
ADD
A
SUB
A
ANA
A
XRA
A
ORA
A
CMP
A
INR
A
DCR A
Примечание

по адресу
0В00
запишите число соответствующее вашему порядковому номеру в журнале.
Разработайте
программы:
Программа
3:
увеличение на 5 числа,
записанного по адресу
0В00,
и записи результата по адресу 0В01
(программа
3);
Программа
4:
сложение чисел, записанных по адресам 0В00 и 0В01, и запись результата по адресу
0В02
(программа
4);
Программа
5: сравнение чисел,
записанных по адресам
0В00 и
0В01, и
записи большего из них в ячейку по адресу 0В02
(программа
5).
Практическая часть
1.
Изучите по рекомендованной литературе правила записи программ на языке
Ассемблера, назначение и использование директив Ассемблера, их ввод и отладку с помощью

54
кросс-средств, обратив особое внимание на формальный синтаксис языка Ассемблер, запись директив Ассемблера, команды симулятора.
2.
Пользуясь системой команд, составьте программу сложения двух однобайтовых чисел без знака: а) числа последовательно вводятся с внешнего устройства с адресом 2; б) числа находятся в ОЗУ по выбранным адресам.
В обоих случаях предусмотрите вывод результата на внешнее устройство с адресом 3 и сохранение в ячейке ОЗУ
Запишите в шестнадцатеричной системе счисления вводимые числа и результат, а также содержимое используемых РОН, аккумулятора и регистра флагов по завершении программы.
Рассмотрите два случая: сумма не превышает значения 255 и сумма превышает 255. Программу оформите в виде таблицы.
1   ...   4   5   6   7   8   9   10   11   ...   43


написать администратору сайта