1-Лабораторная_Основы микропроцессорной техники_3
.rtfМинистерство общего образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра промышленной электроники (ПрЭ)
Лабораторная работа № 1
по предмету «Основы микропроцессорной техники»
Отладка прикладных программ для микропроцессора серии К580
Студент ТМЦДО
Проверил
А.В. Шарапов___________
0000 21 LXI H 10 00
0003 7E MOV A, M
0004 23 INX H
0005 86 ADD M
0006 27 DAA
0007 23 INX H
0008 77 MOV M, A
0009 76 HLT
-
Программа занимает 52 машинных такта.
-
Результат сложения двух чисел находится в ячейке 12Н.
-
До результата десятичной коррекции в аккумуляторе будет сумма сложения двух чисел.
-
После команды DAA, десятичной коррекции в аккумуляторе будет число переведённое из двоичного кода и двоично – десятичный код.
-
команды изменяющие содержимого регистра признаков:
-
ADD
-
DAA
Модифицируем программу, используя прямую адресацию:
LXI H,10H
LDA 11H
ADD M
DAA
STA 12H
HLT
Время выполнения 54 машинных такта.
Проверим работу программы которая ищет максимальное значение снятой с 64 датчиков.
0000 21 LXI H 00 01
0003 06 MVI B, 40
0005 AF XRA A
0006 BE CMP M
0007 D2 JNC 0B 00
000A 7E MOV A, M
000B 23 INX H
000C 05 DCR B
000D C2 JNZ 06 00
0010 76 HLT
Время выполнения программы 2396 тактов
0000 3E MVI A, 90
0002 D3 OUT 83
0004 DB IN 80
0006 0F RRC
0007 0F RRC
0008 0F RRC
0009 0F RRC
000A D3 OUT 81
000C 76 HLT
Время выполнения программы 60 тактов
Выполним программу проследив за изменением регистров.
0000 31 LXI SP 20 00
0003 C6 ADI 01
0005 27 DAA
0006 CD CALL 0C 00
0009 C3 JMP 03 00
000C 06 MVI B, 02
000E 05 DCR B
000F C2 JNZ 0E 00
0012 C9 RET
Программа работает бесконечно
В стеке при вызове подпрограммы сохраняется адрес возврата в основную программу, при этом регистр SP уменьшается на 1.
При выполнении команды RET программы возвращается на адрес, который записан в стеке.
Для уменьшения времени работы программы, необходимо изменить команду
MVI B,02H на
MVI B,01H
При уменьшении регистра В до нуля признак нуля Z становится равен 1
Признак четности P=1 когда в аккумуляторе четное кол – во единиц.
Запустим программу сортировки массива:
0000 31 LXI SP 30 00
0003 21 LXI H 30 00
0006 16 MVI D, 04
0008 E5 PUSH H
0009 D5 PUSH D
000A 0E MVI C, 00
000C 7E MOV A, M
000D 23 INX H
000E BE CMP M
000F DA JC 1C 00
0012 CA JZ 1C 00
0015 46 MOV B, M
0016 77 MOV M, A
0017 2B DCX H
0018 70 MOV M, B
0019 23 INX H
001A 0E MVI C, 01
001C 15 DCR D
001D C2 JNZ 0C 00
0020 79 MOV A, C
0021 B7 ORA A
0022 D1 POP D
0023 E1 POP H
0024 C2 JNZ 08 00
0027 76 HLT
Время выполнения программы зависит от массива
Время выполнения составило 1638 машинных такта.
В стек сначала загружается регистр H потом L.
Если бы программа была на 8 байт длиннее тогда бы в памяти перекрылся код программы и стек программы.
Контрольные вопросы
-
Какие логические операции выполняются в аккумуляторе микропроцессора?
-
Как изменится содержимое аккумулятора при выполнении команды CPI 0FBH?
-
Какими командами можно обнулить аккумулятор?
-
Назвать достоинства и недостатки языка ассемблера по сравнению с языками высокого уровня?
Ответы:
1.
ana Поразрядное И
xra Поразрядное исключающие ИЛИ
ora Поразрядное ИЛИ
ani Поразрядное И А и байта
xri Порязрядное исключающие ИЛИ А и байта
ori Поразрядное ИЛИ А и байта
cma Поразрядное инвертирование
2.
Содержимое аккумулятора не изменится.
3.
Обнулить аккумулятор можно командами: XRA A, MVI A,0
4. Достоинства языка ассемблер в возможности прямого доступа к портам ввода – вывода информации, высока скорость обработки информации.
К недостаткам языка ассемблера можно отнести сложность программирования больших и сложных программ, особенно с пользовательским интерфейсом.