Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1-Лабораторная_Основы микропроцессорной техники_3

.rtf
Скачиваний:
26
Добавлен:
23.06.2014
Размер:
27.81 Кб
Скачать

Министерство общего образования Российской Федерации

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра промышленной электроники (ПрЭ)

Лабораторная работа № 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

  1. Программа занимает 52 машинных такта.

  2. Результат сложения двух чисел находится в ячейке 12Н.

  3. До результата десятичной коррекции в аккумуляторе будет сумма сложения двух чисел.

  4. После команды DAA, десятичной коррекции в аккумуляторе будет число переведённое из двоичного кода и двоично – десятичный код.

  5. команды изменяющие содержимого регистра признаков:

  • 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 байт длиннее тогда бы в памяти перекрылся код программы и стек программы.

Контрольные вопросы

  1. Какие логические операции выполняются в аккумуляторе микропроцессора?

  2. Как изменится содержимое аккумулятора при выполнении команды CPI 0FBH?

  3. Какими командами можно обнулить аккумулятор?

  4. Назвать достоинства и недостатки языка ассемблера по сравнению с языками высокого уровня?

Ответы:

1.

ana Поразрядное И

xra Поразрядное исключающие ИЛИ

ora Поразрядное ИЛИ

ani Поразрядное И А и байта

xri Порязрядное исключающие ИЛИ А и байта

ori Поразрядное ИЛИ А и байта

cma Поразрядное инвертирование

2.

Содержимое аккумулятора не изменится.

3.

Обнулить аккумулятор можно командами: XRA A, MVI A,0

4. Достоинства языка ассемблер в возможности прямого доступа к портам ввода – вывода информации, высока скорость обработки информации.

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