1-2009 ДГЦУиМП
.pdfПеред выполнением этой команды предварительно запол ните массив памяти 800Н-83ЕН[ данными 55Н и подсчитайте контрольную сумму этого массива. Должно получиться 40Н.
Для выполнения команды ПЕРЕМЕЩЕНИЕ МАССИВА ПАМЯТИ:
а) нажмите клавишу ПМ; б) введите начальный адрес массива 800Н;
в) нажмите клавишу РАЗДЕЛИТЕЛЬ; г) введите конечный адрес перемещаемого массива -
83ЕН; д) нажмите клавишу РАЗДЕЛИТЕЛЬ;
е) введите начальный адрес массива* куда осуществляется перемещение 900Н;
ж) нажмите клавишу ВП.
Для проверки правильности выполнения команды пере мещения подсчитайте контрольную сумму нового массива (900Н-93РН). Она должна совпадать с контрольной суммой перемещаемого массива (800Н - 83Ш ) = 40Н.
1.4. Работа в УМК в пошаговом режиме Существуют два режима работы УМК по шагам: а) режим работы по машинным циклам; б) режим работы УМК по командам.
Режим работы УМК по машинным циклам используется для изучения процесса выполнения команды в микропроцес соре.
Режим работы УМК по командам используется для изуче ния команд и отладки программ.
1.4.1. Режим работы УМК по машинным циклам Для установки режима работы УМК по машинным циклам
необходимо выполнить следующие действия:
а) включить и привести в рабочее состояние УМК; б) нажать клавишу РБ/ШГ; в) нажать клавишу КМ/ЦК.
9
Затем записать в память исследуемую программу с нужно го адреса, например, 800Н. запустить программу с адреса 800Н (СТ 800Н). На шине адреса (см. светодиодный индикатор) появится адрес 800Н на шине данных код команды (произош ло чтение кода команды). После нажатия клавиши ШГ микро процессор выполняет команду, если она состоит из одного цикла, для команды, состоящей из двух и более циклов, перей дет к выполнению второго цикла команды.
Таким образом, нажимая клавишу ШГ, можно проследить ход выполнения введенной последовательности команд по циклам.
Чтобы закончить процесс отладки программы нужно на жать клавишу СБРОС, УМК перейдет в режим приема команд.
1.4.2. Режим работы УМК по командам
Для установки режима работы УМК по командам необхо димо выполнить следующие действия:
а) включить и привести в рабочее состояние УМК; б) нажать клавишу РБ/1ИГ; в) отжать клавишу КМ/ЦК.
Затем записать в память исследуемую программу с нужно го адреса, например 800Н. Запустить программу с адреса 800Н (СТ 800 ВП). На шине адреса появится адрес 800Н, на шине данных машинный код команды. После нажатия клавиши ШГ микропроцессор выполнит команду и перейдет к выполнению второй команды. Таким образом, нажимая клавишу ШГ, мож но просмотреть ход выполнения введенной последовательно сти команд. Для завершения выполнения программы нажмите кнопку СБРОС.
2. ЛАБОРАТОРНЫЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ
2.1. Используя команду ПРОСМОТР и МОДИФИКАЦИ СОДЕРЖИМОГО ЯЧЕЙКИ ПАМЯТИ, введите последова
10
тельно в ячейки памяти с адреса 900Н данные· 1, 2, 3, 4, 5, 6, 7, 8, 9,А, В, С, Б, Е, Б. Проверьте правильность ввода информа ции в память.
2.2. Установить значение регистров:
А-ООН |
РН -07Н |
|
В -0 1 |
Н |
P L -08H |
С -0 2 |
Н |
SH -09H |
D -0 3 H |
SL -O A H |
|
Е -0 4 |
Н |
F -F F H |
Н -0 5 |
Н |
|
L -0 6 H
Проверьте правильность выполнения программы.
2.3.Запишите в ячейки памяти (830Н - 83ЕН) - код пустой команды NOP - ООН. Затем выполните команду СТАРТ про граммы полностью и с установкой двух точек остановки 835Н
и839Н.
2.4.Заполните и проверьте массив памяти с адресами 840Н
-84FH данными - 8 Н.
2.5.Заполните массив памяти (850Н - 870) данным 02Н. подсчитайте контрольную сумму.
2.6.Заполните массив памяти (850Н —870Н) данным 02Н. подсчитайте контрольную сумму. Переместите этот массив в область с начальным адресом 950Н. Проверьте правильность выполнения команды перемещения, подсчитав его контроль ную сумму.
2.7.Запишите в память, начиная с адреса 800Н, коды ука занной в таблице последовательности команд (используя ко манду монитора ПРОСМОТР и МОДИФИКАЦИЯ СОДЕР ЖИМОГО ЯЧЕЙКИ ПАМЯТИ).
11
Ад |
Команда |
Машинный |
|
рес |
код |
||
|
|||
800 |
1>1 В, 940 Н |
01 40 09 |
|
803 |
Ьх1Б, 960 Н |
11 60 09 |
|
806 |
МУ1Ь, ЮН |
2Е 10 |
|
808 |
Ю АХ В |
О А |
|
809 |
БТАХБ |
12 |
|
80А |
Ш ХВ |
03 |
|
80В |
Ш Х Б |
13 |
|
80С |
ВСЮ , |
2Б |
|
80D |
Ж Р 800Н |
СЗ 00 08 |
Комментарий
Загр. ВС = 940Н Загр.БЕ = 960Н Загр.Ь = ЮН Загр. А = М по адр.ВС
ЗП. М = А по адр.БЕ ВС = ВС + 1 БЕ = БЕ + 1 Ь - Е - 1
Переход на адр.800Н
Используя пошаговый режим, проследите за ходом вы полнения последовательности команд по циклам и по коман дам. Результаты выполнения этого задания занести в две таб лицы, соответственно по циклам и по комацдам. Сравнивая показания по шине адреса и шине данных в зависимости от номера шага, определите количество циклов в каждой коман де.
3. ОФОРМЛЕНИЕ ОТЧЕТА
Отчет должен содержать
1.Описание последовательности действий при выполне нии лабораторных заданий 2.1 - 2.7.
2.Таблицы результатов просмотра программы, приведен ной в табл.2 в пошаговом режиме.
2.Выводы.
4.ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
1.Как осуществляется включение и запуск УМК?
12
2.Назовите все команды системного монитора УМК.
3.Перечислите последовательность действий оператора при выполнении команд ПРОСМОТР и МОДИФИКАЦИЯ СОДЕРЖДИМОГО ЯЧЕЙКИ ПАМЯТИ, ПРОСМОТР И МОДИФИКАЦЯ СОДЕРЖИМОГО РЕГИСТРОВ.
4.Перечислите последовательность действий оператора при выполнении команд С1АРТ ПРОГРАММЫ и ЗАПОЛНЕ НИЕ МАССИВА ПАМЯТИ.
5.Перечислите последовательность действий оператора при выполнении команд ПОДСЧЕТЫ КОНТРОЛЬНОЙ СУММЫ и ПЕРЕМЕЩЕНИЕ МАССИВА ПАМЯТИ.
6.Объясните, как обеспечить работу УМК в пошаговом режиме.
Лабораторная работа № 2
ИЗУЧЕНИЕ КОМАНД РАБОТЫ С РЕГИСТРАМИ МИКРОПРОЦЕССОРА И ПАМЯТЬЮ
1. ОБЩИЕ УКАЗАНИЯ
Цель работы: изучение команд загрузки регистров, ко манд пересылки, команд работы с памятью.
Исследуются программы, позволяющие осуществлять за грузку регистров, пересылку информации из одного регистра в другой, команды записи или чтения памяти.
Используемое оборудование
Учебный микропроцессорный комплект на базе ЮР 580ВМ80А (УМК).
2. ДОМАШНИЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ
2.1. Ознакомьтесь с языком программирования и структу рой команд загрузки регистров, команд пересылки и команд работы с памятью МП БИС КР580ИК80. Приложение 1. /1, 2/.
13
2.2. Составьте на АССЕМБЛЕРе и в машинных кодах пр грамму загрузки регистров общего назначения А, В, С, Б, Е, Н, Ь соответственно числами 1,2, 3,4, 5 ,6 ,7 Н. ;
Для выполнения задания необходимо использовать коман ды загрузки регистров общего пользования, общий вид кото рых МУ1 Я, В, где Я - идентификатор регистра: Б, В, С, Б, Е, V, Ь; В ~ непосредственный операнд, байтовое число.
Для примера составим программу записи числа 5 в регист
ры А, В. |
|
|
|
Адрес |
Команда |
Машинный код |
Комментарий |
800 |
MVI А, 5 |
ЗЕ 05 |
Загр.рег. А -= 05Н |
802 |
MVI В, 5 |
06 05 |
Загр.рег. В ==05Н |
2.3. Составьте программу загрузки для регистров ВС, DE, HL соответственно 16-разрядными данными 2122Н, 222ЗН, 2324Н.
Для выполнения задания необходимо использовать коман ды манипуляции 16-разрядными данными, общий вид которых Lxl R, BHBL, где R - идентификатор регистра: В, D, Н;
ВН - старший байт 16-разрядного операнда; BL - младший байт 16-разрядного операнда.
Для примера составим программу записи числа 4856 в па ры регистров ВС й DE.
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
805 |
Lxl В, 4856 |
01 56 48 |
Загр.пары per. ВС=4856 |
808 |
Lxl D, 4856 |
11 56 48 |
Загр.пары per. DE=4856 |
2.4. Составьте программу загрузки регистра указателя сте ка и счетчика команд данными 0891Н, 0924Н, 09АСН. Задание
14
по загрузке регистра указателя стека выполнить двумя спосо бами с использованием команды непосредственной загрузки
Ь х IБР, ВНВЬ,
где ВНВЬ - значение операнда; ВН - старший байт; ВЬ - младший байт
и с использованием команды косвенной загрузки БРНЬ. В пер вом случае программа загрузки числа ОВАЗН будет иметь вид
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
810 |
[З ^ Р , ОВАЗН |
31 АЗ ОВ |
|
Во втором случае при использовании команды БРНЬ в указатель стека загружается содержимое регистровой пары НЬ. Поэтому, чтобы в указатель стека загрузить, например число 12АЗ, его предварительно надо загрузить в регистровую пару НЬ.
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
815 |
1>1Н, 12АЗ |
21 АЗ 12 |
Загр.НЬ =12АЗН |
818 |
, 8РНЬ |
Р9 |
Загр. 8Р = НК |
Для записи числа в счетчиках команд необходимо исполь зовать команду РСНЦ по которой в счетчик команд записыва ется содержимое пары регистров НЬ, например
15
Ад |
Команда |
Машинный |
рес |
|
код |
81А |
Lxl Н, ОВАЗ |
21 A3 OB |
81D |
PCHL |
Е9 |
Комментарий
Загр.НЕ = ОВАЗ : Загр.сч. команд PC=HL. Перех. на адрес ОВАЗ.
2.5. Составьте программу перехода числа АА из аккумул тора А последовательно в регистры В, С, Б, Е, Н, Ь.
Для выполнения задания используются команды пересыл ки, общий вид которых
МОУ 111,112,
где Ш - идентификатор регистра получателя А,В,С, О, Е, Н, Ь; Д2 - идентификатор регистра источника:А, В,С, Б, Е, Н, Ь. Например, программа пересылки числа 22 из аккумулято
ра в регистры В, С будет иметь вид
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
820 |
MVI А,22 |
ЗЕ 22 |
Загр.рег. А = 22 |
822 |
MOV В,А |
47 |
Пересылка В <—А |
823 |
MOV С,В |
48 |
Пересылка С <- В |
2.6. Составьте программу загрузки числа 55Н в ячейки па мяти с адресами 900, 901, 902, 903.
Существуют две команды непосредственной записи в па мять: STA AHAL запись в память по непосредственному адре су AHAL содержимого регистра А, SHLD AHAL запись в па мять содержимого регистровой пары HL, причем по адресу AHAL будет записано содержимое регистра L, а по адресу AHAL+I будет записано содержимое регистра Н, например
16
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
810 |
STA 910Н |
32 10 09 |
Запись в память сод. |
|
|
|
per. А по адресу 910Н |
815 |
SHLD |
22 10 09 |
Запись в память сод. |
|
91ОН |
|
per. L по адресу 9ЮН, |
|
|
|
сод.рег.Н по адресу 911 |
2.7. Составьте программы загрузки регистров D, С, D, Е, Н, L числами соответственно 01, 02, 03, 04, 05, 06, используя команды чтения из памяти LDA ARAL - чтение памяти по не посредственному адресу AHAL в регистр А и LHLD AHAL - чтение памяти по непосредственному адресу AHAL в регист ровую пару HL. При этом в регистре L будет записано содер жимое ячейки с .адресом AHAL , в регистре Н содержимое ячейки с адресом AHAL+1. Например, программа чтения в ре гистры А, Н, L содержимого ячеек памяти 860Н, 870Н и 871Н будет иметь вид
Ад |
Команда |
Машин |
Комментарий |
рес |
|
ный код |
|
810 |
LDA 860Н |
ЗА 60 08 |
Чтение в рег.А содержи |
|
|
|
мого ячейки с адр. 860Н |
813 |
LHL D870H |
2A 70 08 |
Чтение в per. L сод. ячей |
|
|
|
ки с адр. 870Н, в рег.Н |
|
|
|
сод. ячейки с адр. 871Н |
2.8. Составьте программы записи и чтения содержимого регистров А, В, С,Б, Е, используя команды чтения/записи па мяти при адресации через регистровую пару НЕ. Общий вид команды:
МОУ М, К - запись в память содержимого регистра; МОУ Я, М - загрузка регистра из памяти, где Я - регистр общего пользования: А, В, С, Ь, Е.
17
При составлении программы надо иметь в виду, что пред варительно необходимо записать в регистровую пару HL адрес ячейки памяти, в которую производится запись-чтение дан ных. Например, программа записи в ячейки памяти с адресом 900Н содержимого регистра А будет иметь вид
Адрес |
Команда |
Машинный |
Комментарий |
|
|
КОД |
|
800 |
L*I Н, 900Н |
21 00 09 |
загр. HL=900H, адр.М |
803 |
MOV М, А |
77 |
ЗП. М=А, по адр. HL |
Программа чтения данных из ячейки памяти с адресом |
|||
900Н в регистр А будет иметь вид |
|
||
Адрес |
Команда |
Машинный |
Комментарий |
|
|
код |
|
800 |
Lxl Н, 900Н |
21 00 09 |
загр. HL=900H, адр.М |
803 |
MOV А, М |
7Е |
Чт. А=М по адр.НЬ |
3. ЛАБОРАТОРНЫЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ
3.1.Запишите в память программу загрузки регистров об щего пользования А, В, С, О, Е, Н, Ь соответственно числам 1, 2, 3, 4, 5, 6, 7, Н. Выполните эту программу, используя коман ду СТ. Используя команду ПРОСМОТР и-МОДИФИКАЦИЯ РЕГИСТРОВ, просмотрите содержимое регистров общего на значения.
3.2.Запишите в память программу загрузки пар регистров ВС, ЭЕ, НЬ соответственно 16-разряднымй данными 2122Н, 2223Н, 2324Н. Выполните эту программу и проверьте пра вильность записи данных в регистры общего назначения.
18