Электроника и МП техника. Китаев Ю.В. - 21 стр.

UptoLike

Составители: 

21
080F 3E
0810 00
mvi a, 0 записать в аккумулятор нули
0811 D3
0812 F9
out F9
и вывести их в порт PB, т.е. "погасить"
индикаторы. Реально "потухнет" только
текущий. Для чего нужно гасить
индикаторы смотри ниже в примечаниях.
0813 03 inx b
перейти к адресу кода следующего
выводимого символа
0814 7A mov a, d
0815 07 rlc
0816 57 mov d, a
сдвинуть содержимое регистра "d" на
один бит влево, т.е. перейти к
следующему индикатору справа (команда
rlc производит циклический сдвиг
аккумулятора на один бит влево, а rrc -
вправо).
0817 FE
0818 40
cpi 40
сравнить текущий код индикатора в
аккумуляторе с кодом 40(HEX)
несуществующего индикатора (cpi N -
сравнивает байт N с байтом в
аккумуляторе)
0819 C2
081A 09
081B 08
jnz повтор
если коды не совпали, повторить вывод
следующего символа в следующем
индикаторе (команда jnz повтор -
осуществляет условный переход к
символическому адресу "повтор" = 0809
081C C3
081D 04
081E 08
jmp снова
если совпали, повторить вывод всех
символов сначала (т.е. с крайнего левого
индикатора). Команда jmp снова -
безусловный переход к символическому
адресу "снова" = 0804
Тот же код, записанный на ассемблере для МП семейства 80x86:
mov al,89h
out 0fbh,al
snova: mov bx, OFFSET istochnik
mov dl,1
povtor: mov al,dl
out 0f8h,al
mov al,[bx]
out 0f9h
mov al,0
out 0f9h