Программа складывает многобайтные BCD-числа, расположенные в резидентной памяти данных (РПД). Регистры R0 и R1 указывают начальные адреса слагаемых. Слагаемые расположены в РПД, начиная с младших байтов. Формат слагаемых одинаков и задается в R2 числом байтов. Результат сложения помещается на место первого слагаемого:
MOV TMOD, #0100000B;настройка счетчика 1
MOV TH1, #0 ;сброс счетчика импульсов
WAIT0: JB P3.4, WAIT0 ;ожидание включения счёта
SETB TCON.6 ;пуск счетчика 1
WAIT1: JNB P3.4, WAIT1 ;ожидание выключения счёта
CLR TCON.6 ;останов счетчика 1
MOV A, TH1 ;(аккумулятор) число импульсов
EXIT: ... ;выход из процедуры
Ожидание заданного кода на входах порта, например 0Аh на входах порта 1:
MOV A,#0AH ; Загрузка
WAIT: CJNE A,P1,WAIT ; Ожидание прихода кода
|