Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Org 100H

СЛОЖЕНИЕ ДВУХ ЧИСЕЛ И ЗАПИСЬ РЕЗУЛЬТАТА В ЯЧЕЙКУ ОПЕРАТИВНОЙ ПАМЯТИ

 

 

Требуется сложить два числа, 4СН и 2ВН и полученную сумму поместить в оперативную памяти по адресу 10Н.

 

ORG 100H; задание расположения начала программы в ОП

MVI A, 00H; обнуление аккумулятора

ADI 4CH; запись первого слагаемого в аккумулятор

ADI 2BH; сложение первого слагаемого со вторым

LXI H, 0010H; запись адреса ячейки ОП в регистровую память Н

MOV M, A; копирование содержимого аккумулятора в ОП

END; указание транслятору прекратить работу.

 

ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЕНИЙ

 

Пусть требуется проанализировать содержимое младшего разряда числа, хранящегося в регистре В.Если оно равно нулю,, то к содержимому регистра В следует прибавить содержимое регистра С; если оно равно единице, то к содержимому регистра В следует добавить содержимое регистра D.

Программа, реализующая эту задачу, представлена ниже

ORG 100H

MVI C, 13H;

MVI B, 12H;

MVI D, 14H;

MOV A, B;

RAR; (циклический сдвиг вправо, младший разряд содержимого; аккумулятора пересылается в триггер Тс)

JC METKA;

MOV A, C;

ADD B;

JMP KON;

METKA: MOV A, D;

ADD B;

KON: MOV B, A;

END

ЦИКЛЫ

Часто при программировании приходится многократно повторять одинаковые операции.Один из способов сокращения размеров программы, а иногда возможности програмирования задачи – это организация циклов.

Пусть необходимо умножить число 5 на число 2 и поместить результат в ячейку ОП по адресу 10Н.

Поскольку система команд ассемблера I8080 не содержит команд арифметического умножения, поставленную задачу будем решать, испoльзуя команды арифметического сложения столько раз, сколько необходимо для получения правильного результата.

ORG 100H

ADI 00H

ADI 02H

ADI 02H

ADI 02H

ADI 02H

ADI 02H

LXI H, 0010H

MOV M, A

END

Однако такое, самое простое решение в общем случае реализовать нель-зя. Тут нужен другой подход. И одним из таких подходов является использование цикла.

Пусть требуется организовать умножение Х на У, (где Х и У -- целые положительные четырехразрядные двоичные числа).

Тогда

ORG 100H

MVI D, X

MVI C, Y

MVI A, 0

UMN: ADD D

DCR C

JNZ UMN

LXI H, 0010H

MOV M, A

END

CИНХРОННЫЙ И АСИНХРОННЫЙ ВВОД-ВЫВОД

 

ОРГАНИЗАЦИЯ АСИНХРОННОГО ВВОДА

 

Пусть датчик готовности сигнализирует о начале работы периферийного устройства, подсоединенного к порту ввода с адресом 15Н. Перифериийное устройство в данном случае генерирует двоичный семиразрядный код для регистров D0—D6 порта ввода с адресом 15Н.

Нужно организовать опрос порта 15Н и по появлению сигнала готовности периферийного устройства(единица в разряде D7) организовать запуск программы обслуживания.

ORG 100H

CIKL: IN 15H;

MOV B, A;

RRC;

JNC CIKL;

MOV A, B;

.

.

<== предыдущая лекция | следующая лекция ==>
Ниже приведены примеры команд с непосредственной адресацией. | Саратов 2003




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.