Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dooh_osnova.docx
Скачиваний:
6
Добавлен:
17.11.2018
Размер:
457 Кб
Скачать
☆

Вывод результата на цап и индикаторы

out 12h отправить результат в ЦАП

Преобразование в двоично-десятичный код

mvi b, 0 обнулить счётчик сотен;

mov d, b обнулить счётчик десятков;

M100:

sui 100D вычесть из результата 100;

jm Exit100 если результат < 0 – выйти из цикла;

inr b иначе – прибавить 1 к счётчику сотен;

jmp M100 продолжить цикл;

Exit100:

adi 100D

M10:

sui 10D вычесть из результата 10;

jm Exit10 если результат < 0 – выйти из цикла;

inr d иначе – прибавить 1 к счётчику десятков;

jmp M10 продолжить цикл;

Exit10:

adi 10D

ani 00001111B очистить старшие 4 бита аккумулятора;

mov e, a запомнить в Е;

mov a, d загрузить в А счётчик десятков;

rlc

rlc

rlc

rlc сдвинуть влево на 4 бита;

mov d, a вернуть в D ;

mov a, e восстановить единицы;

ora d получить двоично-десятичный результат;

Вывод на индикаторы

out 10h

mov a, b

out 11h

jmp Begin

Подпрограмма деления

Div:

lxi h, 8 счётчик бит;

mvi c, 0 сброс регистра остатков;

Next:

mov a, e сдвиг делимого;

ral влево;

mov e, a на один бит;

mov a, c сдвиг остатка;

ral влево на один бит;

sub d вычитание делителя;

jnc NoAddition остаток положительный;

add d восстановление положительного остатка

NoAddition:

mov c, a запоминание остатка;

cmc образование бита частного;

mov a, h запоминание;

ral очередной;

mov h, a цифры частного;

dcr l декремент счётчика бит;

jnz Next повторять;

mov a, h сохранить результат в аккумуляторе;

ret выйти из подпрограммы;

Изм.

Лист

№ докум.

Подпись

Дата

Лист

ФТФ 6.090804.06 ПЗ

31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]