Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 57

Рис. Р6.1. Схема алгоритма умножения

Используем РОНы МП следующим образом: число М храним в регистре С, число N – в аккумуляторе, накапливающуюся сумму частичных произведений и результат – в регистровой паре HL, счетчик циклов организуем в регистре D. В программе используется команда суммирования содержимого пар регистров DAD B, т.е. (H)(L)¬(H)(L)+(B)(C), поэтому задействован также регистр В.

Программа умножения

MULT:            LXI      H,00    ;Обнуление пары HL                                                            10

MOV   B,H      ;Обнуление регистра В                                            5

MVI    D,08    ;Начальная установка счетчика циклов                 7

M1:                 DAD    H         ;Удвоение содержимого пары HL

;(сдвиг Пi влево на 1 разряд)                                   10

RLC                ;Сдвиг множителя N влево на

;1 разряд (ввод Ni в триггер переноса CY)             4

JNC     M2      ;Переход к М2, если Ni = 0                                      10

DAD    B         ;Прибавление к Пi множителя N10

M2:                 DCR    D         ;(D)¬(D) – 1 – организация

;счета циклов                                                            5

JNZ     M1      ;Переход к М1 при (D) ¹ 0                                       10

Суммарное число тактов (при N = Nмакс = 255)

N = 10+5+7+8(10+4+10+10+5+10)=414.

Время выполнения программы при fт = 2МГц t = 207 мкс.

Р6.42. а)

Характеристика

КР580ВМ80

К1810ВМ86

Разрядность шины данных

8

16

Адресуемая емкость памяти

64 Кбайт

1 Мбайт

Тактовая частота

2 МГц

5 МГц

Арифметические операции

Сложение, вычитание

Сложение, вычитание, умножение, деление

Возможность работы с цепочками слов

Нет

Есть

Напряжение питания, В

+5, -5, +12

+5

б) Адресное пространство памяти 1 Мбайт разбито на 16 сегментов по 64 Кбайт в каждом. Четыре сегмента специализированы: сегмент программы, сегмент стека, сегмент данных и сегмент дополнительных данных. Начальный адрес каждого сегмента (сегментный адрес) содержит 20 бит, но 4 младших бита – всегда нули. Адрес ячейки в пределах сегмента называется смещением и содержит 16 бит. Исполнительный адрес получается при суммировании сегментного адреса и смещения (рис. Р6.2).

Сегментирование памяти позволяет хранить все адреса в 16-разрядных (а не в 20-разрядных) регистрах, но при этом приходится тратить дополнительное время на получение исполнительных адресов. Сегментные адреса хранятся в четырех сегментных регистрах CS, SS, DS и ES, которые выбираются по программе.

Р6.43. Адресное пространство ввода-вывода – 65536 портов. Исполнительный адрес порта имеет формат 20 бит, но старшие 4 бита всегда нулевые. Поэтому при адресации портов сегментные регистры не используются. Первые 256 ортов могут иметь прямую адресацию; все порты могут адресоваться косвенно (адрес порта – в регистре, определяемом командой).

Рис. Р6.2. Схема вычисления исполнительного адреса в МП К1810

Р6.44. Регистр АХ обычно выполняет функцию аккумулятора, ВХ используется как источник базового адреса (соответствует регистровой паре HL МП КР580ВМ80); СХ часто используется в качестве счетчика циклов; DX используется в командах умножения и деления, а также при косвенной адресации портов ввода-вывода.

Все эти порты – 16-разрядные, но допускают независимую адресацию старшего и младшего байтов (AH-AL, BH-BL и т.д.).

Р6.45. 16-разрядные сегментные регистры содержат начальные адреса сегментов памяти: CS – сегмент программы, SS – сегмент стека, DS – сегмент данных, ES – сегмент дополнительных данных.

При формировании исполнительных адресов эти начальные адреса суммируются со смещением, указанным в команде, в соответствии с формулой

(исполнительный адрес) = 24×(сегментный адрес)+(смещение).