Построение счетчиков на двух регистрах.
МП обладает аппаратной возможностью формирования признака нулевого результата только для одного регистра, а не для регистровой пары. Поэтому пользователю (разработчику программ) необходимо формировать признак нулевого результата на программном уровне.
Фрагмент из программы
Delay:
LXIB, DEL ; пересылается константа
В регистровую пару В-С
M3:
NOP ; пустая команда для увеличения
Времени цикла
NOP
MOVA,C
ORA B ; (A)←(A)V(B)
JNZM3
JMPMi ; метка основной программы
END
Построение программы с управляющими сигналами
Если МПС управляет устройством, то на вход МПС поступает сигнал, по результатам которого формируется управляющий сигнал. Пусть двоичный счетчик управляется двумя сигналами, а именно, сигнал Х1 – сброс счетчика в нулевое состояние (начальное) и Х2 – останов счетчика.
Примечание:Эти сигналы используются в программной реализации проектируемого устройства в курсовой и лабораторной работах.
Управляющий сигнал обеспечивает сброс счетчика в начальное состояние, если Х1=0 в разряде регистра А1 (аккумулятор), а Х2=0 в разряде регистра А3 (аккумулятор) : обеспечивает останов счета. Cигналы управления вводятся в аккумулятор МП побайтно.
Рассмотрим последовательность применения управляющих сигналов.
а) выделение сигнала Х1. Для этого применим команду логического умножения (конъюнкция) АNIX, где Х – число (соnst), позволяющее выделить любой разряд (ы) регистра (аккумулятора). В нашем примере константа 02 (ANI 02), которая позволяет выделить разряд сигнала Х1.
б)определение значенияразряда (1 или 0)управляющего сигналаХ1: применяем команды JZ или JNZ.
Аналогично для сигнала Х2:
а) выделение сигнала Х2 (сонстанта 08):
б)определение значенияразряда сигнала Х2: применяем команды JZ или JNZ.
Пусть Х1 =Х2=1, то есть рассмотрим ситуацию, когда счетчик работает без воздействия управляющих сигналов:
Разработка программы счетчика табличным методом.
Сущность метода построения счетчика: в памяти МПС на программном уровне формируется таблица (одномерная), в которой по адресу, соответствующему текущему состоянию, записано число (в памяти), которое соответствует следующему состоянию счетчика.
Пример: разработать счетчик табличным методом с произвольным порядком смены состояний.
Пусть счетчик имеет начальное состояние Q0 = 4 и выдает следующие значения
4 →0 →14→12 →8.
NAT обозначим, как метка, которая указывает начальный адрес таблицы знчений, выдаваемых счетчиком.
Фрагмент программы:
…………………………………
MOVA,C ;(А)← (C)
OUTOUTPORT;вывод значений счетчика
LXIH,NAT ;загружаем данные таблицы
MVIB,0 ;обнуляем регистр В
DADB ;(H-L) ← (H-L)+(B-C)
MOV A,M ;(A) ←([H-L])
MOV C,A ;(C) ←(A)
JMP M1
NAT: db 0Еh,0h,0h,0h,0h,0h,0h,0h,4h,0h,0h,0h,8h
Includestack.asm
End