Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Программа У88Б1 экономичнее программы У88А1 по длине на 10 % и по затратам времени на 26 %, но использует для размещения данных лишний регистр. Быстродействие программы можно увеличить (с 396 до 257 тактов), если раскрыть цикл, т. е. исключить команды проверки конца цикла, а сам цикл повторить 8 раз путем 8-кратного размещения команд цикла в теле программы [18]. Сравнение вычислительных схем 1 и 3 по их программным реализациям показывает предпочтительность использования схемы 3. Ее преимущество объясняется наличием у микропроцессора КР580 команд сложения типа DAD, обеспечивающих быстрое сложение двухбайтных данных и их сдвиг влево. Из-за отсутствия команд сдвига вправо двухбайтных данных малоперспективна схема 4.

Программа У88В реализует умножение по вычислительной схеме 2 (см. рис. 1.5, б) (аналогичная программа приведена в работе [16]):

0590

0590 AF

0591 67

0592 6F

0593 57

0594 83

0595 С8

0596 AF

0597 81

0598 С8

0599 IF 059А II29E05

059II 19

059Е ЕВ 059F 29 05А0 ЕВ

ОКБ 590H

У 88В:

;ПОДПРОГРАММА УМНОЖЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ чисел ВЕЗ ЗНАКА-;ФОРМАТА 8*8=16.ВАРИАНТ В.

;МЕТОД УМНОЖЕНИЯ:8 (ИЛИ МЕНЕЕ) ЦИКЛОВ СДВИГОВ МНОЖИТЕЛЯ ВПРАВО (С КОНТРОЛЕМ ОСТАТКА НА О).А МНОЖИМОГО ВЛЕВО. ;ВХОДНЫЕ ПАРАМЕТРЫ:(С)-МНОЖИТЕЛЬ,(Е)-МНОЖИМОЕ.ВЫХОДНОЙ ;ПАРАМЕТР:(НгЕ)-ПР0ИЗВЕДЕНИЕ.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТР!!, гКРОМЕ Б;СОХРАНЯЕТСЯ (С).

;ОЦЕНКА:ДЛИНА-22 ЕАИТА,ВРЕМЯ-НЕ БОЛЕЕ 499 ТАКТОВ.

;ОБНУЛЕНИЕ текущей СУММЫ чп

XRA А

МОУ Н,А

МОУ L,A

МОУ В,А !(П)=0

гПР-ОВЕРКА СОМНОЖИТЕЛЕЙ НА О

ADD RZ XRA ABB RZ

;ЕСЛИ МНОЖИМОЕ=0

; f(A)-МНОЖИТЕЛЬ

гЕСЛИ МНОЖИТЕЛЬ=0 ;сдвиг МНОЖИТЕЛЯ ВПРАВО ЦИКЛ: RAR

JNC ПЕР ;ЕСЛИ РАЗРЯД МНОЖИТЕ ЛЯ=0

;СЛОЖЕНИЕ МНОЖИМОГО С ТЕКУЩЕЙ СУММОЙ ЧП

DAD D : сдвиг МНОЖИМОГО ВЛЕВО ПЕР: XCH6

DAD Н

XCH6 ,



;ПРОВЕРКА КОНЦА ЦИКЛА 05А1 В7 ORA А

05А2 С29905 JNZ ЦИКЛ ;ЗАЦИКЛИВАНИЕ

05А5 С9 RET

0000 ENB

Особенность этой программы заключается в том, что МН ПОСТОЯННО размещен (и сдвигается) в аккумуляторе, причем конец цикла контролируется не по счетчику (счетчик цикла отсутствует), как в предыдущих программах, а по остатку МН в аккумуляторе. Выполнение же операций сложения и сдвига осуществляется, как и в программах У88Б и У88Б1, посредством команд типа DAD, минуя аккумулятор, причем для сдвига МН влево временно используется та же регистровая пара (H,L), в которой размещается СЧП. Программа У88В по быстродействию (Г 51 -f 56 п тактов, где п8) превосходит программы У88А и У88А1, а в ряде случаев и программы У88Б, У88Б1, поскольку они всегда выполяют 8 циклов умножения, независимо от значения ненулевого МН, а программа У88В при нулевых старших разрядах МН - на соответствующее количество циклов меньше.

Проверить работоспособность программ полезно на тестовых наборах данных (табл. 1.5).

Табл. 1.5. Тесты умножения формата 8-8=16 (целые двоичные беззнаковые числа)

Представление чисел

иестнадцатеричное

десятичное

FF-FF=FE01 255-255 = 65025

FF.01=00FF 255-1 =255 F0-OF = 0E10 240-15 =3600

55-АА=3872 85 - 170 = 14450

00 • 00 = 0000 0-0 = 0

10-10 = 100 16-16 = 256

20 - 20 = 400 32 - 32 = 1024

40-40 = 1000 64-64 =4096

80-80=4000 28 • 128 = 16384

7F.7F=3F01 127.127=16129

1.3.2.2. Форматы 8 • 16=24, 8 • 16= 16

Программа У24 реализует умножение по вычислительной схеме 3 аналогично программе У88Б:



05Б0

ORG 5Б0Н

У24:

;ПОДПРОГРАММА УМНОЖЕНИЯ ИЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА ;ФОРМАТА 16»8=24.

;МЕТОД УМНОЖЕНИЯ!8 ЦИКЛОВ СДВИГОВ МНОЖИТЕЛЯ И ТЕКУЩЕЙ ;СУММЫ ЧАСТИЧНЫХ ПРОИЗВЕДЕНИЙ ВЛЕВО.

!БХОДНЫЕ ПАРАМЕТРЫ.(С)-МНОЖИТЕЛЬ,(В,Е)-МНОЖИМОЕ.ВНХОД-;ННЕ ПАРАМЕТРЫ: (А,Н,Е)-ПРОИЗВЕДЕНИЕ.ИСПОЛЬЗУ10ТСЯ ВСЕ ;РЕГИСТРНгСОХРАНЯЮТСЯ (С)г(ВгЕ). ;ОЦЕНКА!ДЛИНА-25 БАЙТ,БРЕМЯ-НЕ БОЛЕЕ 510 ТАКТОВ.

ОБНУЛЕНИЕ ТЕКУЩЕЙ СУММЫ ЧП

О5Б0 AF

05Б1 67

05В2 6F

;ПР0ВЕ1-КА СОМНОЖИТЕЛЕЙ НА 0

05БЗ 81

05В4 С8

;ЕСЛИ МНОЖИТЕЛЬ=0

05В5 AF

05Б6 В2

05Б7 БЗ

05Б8 С8

;ЕСЛИ МНОЖИН0Е=.О

05Б9 79

-(А)-МНОЖИТЕЛЬ

05ВА 0608

!СЧЕТЧИК ЦИКЛОВ

SСДВИГ ТЕКУЩЕЙ СУММЫ

ЧП И МНОЖИТЕЛЯ ВЛЕВО

05ЕС 29

ЦИКЛ: BAB

05ВВ 17

05БЕ В2С405

;ЕСЛИ РАЗРЯД МНОЖИТЕЛЯ=0

;СЛОЖЕНИЕ МНОЖИМОГО С ТЕКУЩЕЙ СУММОЙ ЧП

05С1 19

05С2 СЕОО

SПРОВЕРКА КОНЦА ЦИКЛА

05С4 05

ПЕР: BCR

05С5 С2ВС05

ЦИКЛ

J ЗАЦИКЛИВАНИЕ

05С8 С9

0000

Максимальная длительность цикла умножения составляет 56 тактов, а время выполнения программы 62-f-56 • 8 = 510 тактам. В последующих программах более высокого уровня широко используется ее упрощенный вариант (без проверки сомножителей на нуль) - программа У24А (аналогичная программа приведена в работе [21]):

05D0

ORG 5B0H

У24А:

?ПОДПРОГР-АММА УМНО.ЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА ;Ф0РМАТА 16*8=24 (БЕЗ ПРОВЕРКИ СОМНОЖИТЕЛЕЙ НА НОЛЬ). ;ВХОДНЫЕ ПАРАМЕТРЫ:(А)-МНОЖИТЕЛЬр(В,Е)-МНОЖИМОЕ.ВНХОД-;НЫЕ ПАРАМЕТРЫ:(АгН,Е)-ПР0ИЗБЕДЕНИЕ.ИСПОЛЬЗУЮТСЯ ВСЕ гРЕГИСТРЫ,СОХРАНЯЕТСЯ (В,Е).

;0ЦЕНКА:ДЛИНА~18 БАИТ,БРЕМЯ-НЕ БОЛЕЕ 454 ТАКТА.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0091
Яндекс.Метрика