|
Главная -> Появление первого микропроцессора 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 ТАКТОВ. ОБНУЛЕНИЕ ТЕКУЩЕЙ СУММЫ ЧП
Максимальная длительность цикла умножения составляет 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 |
|