Доставка цветов в Севастополе: 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

05П0 210000 lxi HrO гОБНУЛЕНИЕ СУММЫ ЧП

05Са 010800 lxi В»08 ;(В)=0»<С)-СЧЕТЧИК ЦИКЛОВ

;СДВИГ ТЕКУЩЕЙ СУММЫ ЧП И МНОЖИТЕЛЯ ВЛЕВО 05П6 29 ЦИКЛ5 ВАВ Н

05П7 8F АПС А

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

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

05ПВ 19 BAD В

05ПС 88 АПС В

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

05ПП 0D ПЕР! DCR С

05ГС C2D605 JNZ ЦИКЛ УЗАЦИКЛИВАНИЕ

05Е1 С9 RET

0000 END

Максимальная длительность цикла умножения равна 53 тактам, а время выполнения программы Г30---1-53-8 = 454 тактам. Сокращение времени цикла по сравнению с программой У24 достигнуто за счет использования более быстродействующей- команды ADC В вместо ACI 0.

Иногда при умножении целых чисел возникает необходимость получения произведения в сокращенном формате, не превышающем формат одного из сомножителей. Обычно такое произведение формируют из полноформатного путем его округления. Программа У168 реализует сокращенный формат умножения путем симметричного округления произведения формата 16-8 = 24, вычисляемого предварительно подпрограммой У24:

05f0 org 5f0h

05Е0 у24 set 5Б0Н

у168:

!подпрограмма умножения ЦЕЛЫХ двоичных ЧИСЕЛ без знака ;формата 16*8=16 С округлением.

;входные параметры:(С)-множитель.(d.e)-множимое.быход-;ной параметр:(НгЕ)-произбедение.используются все реги-;СТРЫгсохраняются (С)»(В»Е). используется подпрограмма ;»у24*.

;0ценка:длина-11 (+25»у24») БАЙТгВРЕМЯ-не еолее 571 sтактов (С учетом »у24*).

;выполнение умножения 16*8=24 05f0 cdb005 call у24 J(а.HjL)-произведение

гОКРУГЛЕНИЕ результата 05f3 45 mov BrL ;(в)-млб

05f4 6с mov L>h S(L)-cpe

05f5 67 mov НгА ;(Н)-стб

05f6 78 mov А.в ;(А)-МЛЕ

05f7 17 ral

05f8 ВО . rnc ;если стр баита=0



05F9 23 05FA С9 0000

INX RET END

J(CTE»CP15)+1

В результате округления точного произведения формируется произведение ограниченной точности, погрешность которого определяется формулами (1.10) и (1.12). Заметим, что модуль полученного произведения содержит неявный множитель 256, так как сокращенный формат представляет только СТБ и СРБ полного произведения (МЛБ отбрасывается). Тестовые наборы данных для программ У24 и У24А приведены в табл. 1.6.

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

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

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

десятич! ое

FF-FFFF=FEFF01 01 - FFFF = OOFFFF OF- FOOO = OE1000 FF- FE0O=FEO10O AA-5555=38AA72 7F-07FF=03F781

255-65535= 16711425 01 -65535 = 65535 15-64440= 966600 255-65280= 16646400 170-21845 = 31713650 127-2047 = 259969

1.3.2.3. Формат 16- 16=32

Программа У32А, подобно программам У88Б, У24, реализует умножение по вычислительной схеме 3 (аналогичная программа приведена в работе [71]):

0600

0600 AF

0601 67

0602 6F

0603 В2

ORG 600Н

У32А:

гПОЙПРОГРАММА УМНОЖЕНИЯ ЦЕЛЫХ двоичных ЧИСЕЛ ВЕЗ ЗНАКА

;формата 16*16=32.вариант а.

гМЕТОД УМН0ЖЕНИЯг16 ЦИКЛОВ сдвигов МНОЖИТЕЛЯ и СУММЫ ;ЧАСТИЧНЫХ ПРОИЗВЕДЕНИЙ ВЛЕВО.

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

;0ЦЕНКА!ЙЛИНА-40 ВАЙТ.ВРЕМЯ-НЕ БОЛЕЕ 1711 ТАКТОВ.

;ОБНУЛЕНИЕ ТЕКУЩЕЙ СУММЫ ЧП XRA А MOV Н.А MOV L.A

? ПРОВЕРКА СОМНОЖИТЕЛЕЙ НА О "

ORA В -.- - •



0604 ВЗ

0605 С8

;если множитель=о

0606 AF

0607 ВО

0608 В1

М09 C20F06

ПЕР ;ЕСЛИ МНОЖИМОЕ НЕ 0

060С 57

DrA ;ОБНУЛЕНИЕ МНОЖИТЕЛЯ

060В 5F

060Е С9

060F AF

nEPs XRA

А ;СЧЕТЧИК ЦИКЛ0В=о

;СЙБИГ МНОЖИТЕЛЯ влево

0610 ЕВ

ЦИКЛ: XCHG

0611 29

0612 ЕВ

XCHG

0613 IF

jСОХРАНЕНИЕ ПЕРЕНОСА в (А)

гсйвиг СУММЫ чп влево

0614 29

0615 В21906

ПЕР1

0618 13

D гУЧЕТ ПЕРЕНОСА от СДВИГА

; АНАЛИЗ СДВИНУТОГО РАЗРЯДА МНОЖИТЕЛЯ

0619 17

ПЕР1! RAL

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

061А D22206

; СЛОЖЕНИЕ МНОЖИМОГО С ТЕКУЩЕЙ СУММОЙ чп

061В 09

061Е D22206

ПЕР2

0621 13

D ;учет ПЕРЕНОСА от СЛОЖЕНИЯ

;ПРОВЕРКА КОНЦА ЦИКЛА ПО ПЕРЕПОЛНЕНИЮ (А>

0622 С610

ПЕР2: ADI

0624 В21006

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

0627 С9

0000

Увеличение разрядности сомножителей и произведения ведет к росту количества используемых регистров и усложнению типа передач данных между ними, что в результате увеличивает длину программы, длительность ее цикла и общее время ее выполнения. Максимальная длительность цикла умножения в программе У32А равна 103 тактам, а время ее вьшолнения Г 63 + ЮЗ 16 = = 1711 тактам. Программа имеет три особенности: 1) для сдвига МН временно используется та же регистровая пара (Н, L), что и для накопления СЧП; 2) для сохранения переноса от сдвига множителя (с целью последующего его анализа) используется старший бит аккумулятора; 3) счетчик конца цикла построен не по принципу уменьшения переменной цикла до нуля, как в предыдущих программах, а, наоборот, по принципу увеличения переменной цикла ОТ нуля до переполнения счетчика (аккумулятора)

Программа У32А выполняет процесс умножения как 16-кратное повторение цикла умножения множимого на очередной разряд множителя. Благодаря этому обеспе-



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.0108
Яндекс.Метрика