Калабеков - микропроцессор КР580ИК80 (1084775), страница 4
Текст из файла (страница 4)
В табл. 3.9 приведена программа данной задачи.
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ВЫЧИСЛИТЕЛЬНЫХ
ПРОЦЕССОВ
Рассмотрим выполнение операции кодового умножения двух восьмиразрядных чисел без знака. Пусть множимое хранится в паре регистров DE, где оно занимает младший регистр Е, старший регистр D пары регистров установлен в нуль. Будем считать, что множитель хранится в аккумуляторе А. Шестнадцатиразрядное произведение будем формировать в паре регистров HL.
Процесс получения произведения организуем следующим образом. Будем анализировать разряды множителя, начиная с его старшего разряда. В соответствии с этим частичные произведения будут формироваться, начиная со старшего частичного произведения. Накопление суммы частичных произведений будем производить в паре регистров H, т.е. к содержимому предварительно сброшенной в нуль пары регистров HL вначале прибавим восьмое частичное произведение; затем, сдвинув на один разряд влево содержимое пары регистров HL, прибавим седьмое частичное произведение и т.д., пока не будут просуммированы все частичные произведения.
Таким образом, этот процесс носит циклический характер: цикл, содержащий операции сдвига влево содержимого пары регистров HL,
формирования и прибавления к содержимому пары регистров HL очередного частичного произведения, должен быть повторен восемь раз.
Д ля счета числа повторений цикла организуем счетчик на регистре В. В этот регистр предварительно занесем число 8 и после каждого повторения цикла будем вычитать единицу из содержимого регистра В, проверяя затем, равно ли нулю его содержимое. При достижении нулевого значения производится выход из цикла.
На рис. 3. 11 представлена схема алгоритма. Блок 1 производит установку нулевого значения в паре регистров HL. Блок 2 устанавливает в регистре В (счетчике) начальное значение 8. Блок 3 производит сдвиг на один разряд влево содержимого пары регистров HL; эта операция выполняется путем удвоения содержимого этой пары регистров: HL (HL) + (HL). Блок 4 предназначен для анализа очередного разряда множителя; для этого содержимое аккумулятора А сдвигается влево, в результате чего очередной разряд хранимого в нем множителя передается в триггер Тс регистра признаков. Блок 5 производит разветвление по содержимому триггера Тс. При (Тс) = 1 в блоке 6 выполняется операция прибавления множимого (содержимого пары регистров DE) к сумме предыдущих, частичных произведений в паре регистров HL. При (Тс) = 0 операция суммирования не выполняется, по команде условного перехода осуществляется переход к команде блока 7. Блок 7 производит вычитание единицы из содержимого счетчика (регистра В), после чего блок 8 выполняет разветвление по содержимому триггера Tz регистра признаков. Если при выполнении команды блока 7 в регистре В образуется нулевое значение, в триггере Tz устанавливается значение лог. 1, происходит выход из циклами переход к очередной, команде. Если содержимое регистра В не равно нулю, то в триггере Тz устанавливается значение 0 и команда условного перехода производит переход к команде блока 3, вызывая очередное повторение цикла.
В табл. 3.10 показано размещение команд в ячейках ОП.
В табл. 3.11 приведена программа рассматриваемой операции умножения.
В цикле выполняются команды блоков 3 ... 8. Определим количество тактов Nт1 требуемое для однократного прохождения цикла алгоритма. При этом будем полагать, что во всех разрядах множителя содержатся единицы (случай с точки зрения быстродействия наиболее тяжелый):
Nт1= 10+4+10+10+5+10=49 тактов.
Число тактов при восьмикратном прохождении цикла Nт = 8*Nт1 = 8*49=392 такта.
В § 1.4 было показано, что в процессоре, в котором используется специализированное операционное устройство и управляющее устройство, построенное на принципе схемной логики, число тактов для однократного прохождения цикла алгоритма составляло 2. Следовательно, реализация рассматриваемой операции умножения в микропроцессоре требует в 49/2 = 24,5 раза большего числа тактов. Такой проигрыш в быстродействии при использовании микропроцессора КР580ИК80 может оказаться еще большим, если учесть, что в случае применения в микропроцессорном устройстве оперативной памяти с низким быстродействием в цикле работы микропроцессора появятся «пустые» такты T2, связанные с ожиданием появления сигнала на входе Готовность.