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

1-17_Основы микропроцессорной техники

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

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

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

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

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

Контрольная работа

по предмету «Основы микропроцессорной техники»

Вариант 17

Студент

Проверил

Задание:

Записать в массив В (800Н-83FН) МП серии 580 двоично-десятичный код двоичных чисел массива А (900H-93FH, больших числа, набранного на тумблерах порта ввода РС.

Восьмиразрядное двоичное число в двоично – десятичном коде занимает два байта. Запись в массив В будем производить сначала младший байт потом старший.

Программа:

LXI SP,0FFFH;

LXI D,900H ;адрес массива А

LXI B,800H ;адрес массива В

MVI A,89H ;Управляющее слово

OUT 83H ;

IN 82H ;

MVI L,93H ;Счетчик цикла

MOV H,A ;А->H

M1: LDAX D ;загрузказ начения из памяти

CMP H ;сравнение с значением из порта

JC M4 ;переход если нет число меньше

JZ M4 ;переход если числа равные

{Перевод в двоично десятичный код}

PUSH H ;сохранение в стеке пары регистров

MOV L,A ;счетчик цикла

MVI A,0 ;занечение в регистры L и А нулей

MOV H,A ;

M2: ADI 1 ;А=А+1

DAA ;десятичная коррекция

JNZ M3 ;Переход если двично-десятичное число меньше 100

PUSH PSW ;

MOV A,H ;

ACI 0 ;Увеличение сотен в двично-десятичном числе

MOV H,A ;

POP PSW ;

M3: DCR L ;

JNZ M2 ;

;

STAX B ;Запись двочно-десятичного числа в память

INX B ;

MOV A,H ;

STAX B ;

INX B ;

POP H ;Востановление пары регистров из стека

;

M4: ;

INX D ;Увеличение адреса массива на 1

DCR L ;

JNZ M1 ;Переход если не конец массива

Листинг программы:

Ассемблер К580ВМ80, (BFG) v 1.00b 1995.

Листинг кодов команд.

──────────────────────────────────────────────

┌───────────────────────────────────────────────────────────────────┐

│ Адрес Код команды Команда с параметрами │

└─┬──────────────┬──────────────┬───────────────────────────────┬───┘

_ _ _ _

0000 31 LXI SP FF 0F

0003 11 LXI D 00 09

0006 01 LXI B 00 08

0009 3E MVI A, 89

000B D3 OUT 83

000D DB IN 82

000F 2E MVI L, 93

0011 67 MOV H, A

0012 1A LDAX D

0013 BC CMP H

0014 DA JC 35 00

0017 CA JZ 35 00

001A E5 PUSH H

001B 6F MOV L, A

001C 3E MVI A, 00

001E 67 MOV H, A

001F C6 ADI 01

0021 27 DAA

0022 C2 JNZ 2B 00

0025 F5 PUSH PSW

0026 7C MOV A, H

0027 CE ACI 00

0029 67 MOV H, A

002A F1 POP PSW

002B 2D DCR L

002C C2 JNZ 1F 00

002F 02 STAX B

0030 03 INX B

0031 7C MOV A, H

0032 02 STAX B

0033 03 INX B

0034 E1 POP H

0035 13 INX D

0036 2D DCR L

0037 C2 JNZ 12 00