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

Выше отмечалось, что программы умножения целых беззнаковых чисел применимы и к умножению дробных беззнаковых чисел. Правильность этого утверждения можно показать на примерах умножения двоичных чисел, имеющих одинаковое начертание, но различающихся положением запятой (для простоты рассматриваются двухразрядные числа):

(00,) • (00,) = 0000, = 0,0 (,00). (,00) = ,0000 = 0,0

(01,)-(01,) = 0001, = 1,0 (-,01)-(,01) = ,0001 =0,0625,0

(10,). (10,) = 0100, = 4,0 (,10)-(,10)=,0100 = 0,25,о

(11,)-(11,)= 1001, = 9,0 (,11)-(,11) = ,1001 =0,5625,0

Очевидно, что начертания произведений дробных и целых чисел совпадают и отличаются лишь начальным положением запятой (неявным масштабным множителем). Следовательно, программы умножения целых беззнаковых чисел полностью применимы для умножения дробных беззнаковых чисел.

Аналогично можно использовать умножение целых беззнаковых двоичных чисел для получения модуля произведения дробных чисел со знаком:

(ООО,) • (ООО,) = 000000, (0,00) (0,00) = 0,0000

(001,). (001,) = 000001, (0,01 -(0,01) = 0,0001

(010,) • (010,) = ООО 100, (0,10) • (0,10) = 0,0100

(011,)-(011,) = 001001, (0,11). (0,11) = 0,1001

Сравнивая начертания произведений целых и дробных чисел со знаком, легко заметить, что последние образуются путем сдвига изображения соответствующего целочисленного произведения на один разряд влево.

Методика умножения дробных знаковых чисел с использованием программ умножения целых чисел имеет .следующий вид: 1) получение модулей сомножителей; ;•, 2) формирование их произведения с помощью программ целочисленной арифметики; 3) сдвиг произведения влево на один разряд; 4) преобразование модуля произведения в дополнительный код, если знаки сомножителей различны.

1.3.4.2. Формат 16-16=16

Программа УДФ16 реализует знаковое умножение, обращаясь к подпрограмме полноформатного беззнаково-



го умножения У32Б и трем вспомогательным подпрограммам ДОПВ, ДОПД. ДОПН:

0750

750H

0630

У32Б

630H

0050

ДОПЕ

0058

ДОПД

0060

ДОПН

УДФ16;

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

;ВХОДННЕ ПАРАМЕТРЫ:(ВгС)-МНОЖИТЕЛЬт(В»Е)-МНОЖИМОЕ.ЕЫ-гХОДНОЙ ПАРАМЕТР:(HfL)-СТАРШИЕ 2 БАЙТА ПРОИЗВЕДЕНИЯ. :ИСП0ЛЬЗУЮТСЯ все РЕГИСТРЫгГЛУБИНА СТЕКА-12.ИСП0ЛЬЗУ-:ЮТСЯ ПОДПРОГРАММЫ:«У32Б» т »ДОПЕ«.«ДОПД».»ДОПН» »»У24А». ;0ЧЕНКА:ДЛИНА-45 <+84 БАЙТА ПОДПРОГРАММ) БАЙТ.ВРЕМЯ-;НЕ БОЛЕЕ 1422 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

;ОБНУЛЕНИЕ СУММЫ ЧПгПРОВЕРКА СОМНОЖИТЕЛЕЙ НА О

0750 AF

0751 67

0752 6F

L>A

0753 Е2

0754 ЕЗ

0755 С8

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

0756 78

0757 Б1

0758 С8

?ЕСЛИ ЖОЖИТЕЛЬ=0

;АНАЛИЗ ЗНАКОВ

СОМНОЖИТЕЛЕЙ НА СОВПАДЕНИЕ

0759 7А

075А А8

В ;5=0гЕСЛИ ЗНАКИ ОДИНАКОВЫ

075В F5

PUSH

PSU ;СОХРАНЕНИЕ S Б СТЕКЕ

;ПРОВЕРКА ЗНАКА МНОЖИМОГО

075С 7А

075В 17

075Е D26407

ПЕР1 ;ЕСЛИ ЗНАК "+"

0761 CD5800

CALL

ДОПД ; <В г Е)-ДОПОЛНИТЕЛЬНЫЙ КОД

! ПРОВЕРКА ЗНАКА СОЖИТЕЛЯ

0764 78

ПЕР1: МОУ

0765 17

0766 В26С07

ПЕР2 ;ЕСЛИ ЗНАК "+"

0769 СВ5000

CALL

ДОПВ ;(БгС)-ДОПОЛНИТЕЛЬНЫЙ КОД

5БЕЗЗНАКОВОЕ УМНОЖЕНИЕ ДВОИЧНЫХ ЧИСЕЛ 16*16=32

076С СВ3006

11ЬР2: CALL

У32Б ;(Б1С.Н,Е)-ПР0ИЗЕЕДЕНИЕ

гСДВИГ СТАРШИХ БАЙТОВ ПРОИЗВЕДЕНИЯ ВЛЕВО НА 1 РАЗРЯД

076F 7С

0770 17

0771 79

0772 17

0773 6F

0774 78

0775 17 •

0776 67

Н.А 5(H.L)-ПРОИЗВЕДЕНИЕ

гКОРРЕКЧИЯ ПРОИЗВЕДЕНИЯ с УЧЕТОМ ЗНАКОВ СОМНОЖИТЕЛЕЙ



0777 Fl FOP PSU ?ЕОССТАНОЕЛЕНИЕ ПРИЗНАКА В

0778 FO RP ;ЕСЛИ ЗНАКИ ОДИНАКОВЫ

0779 СЮ6000 CALL ДОПН ; (H,L)-ДОПОЛНИТЕЛЬНЫЙ КОЯ 077С С9 RET

0000 END

В программе использовано округление произведения путем отбрасывания младших 16 разрядов полного произведения. Вспомогательные программы ДОПВ, ДОПД, ДОПН вьшолняют преобразование чисел, размещенных соответственно в регистровых парах (В, С), (D, Е) и (Н, L), в дополнительный код в соответствии с форму-

лой (1.8):

0050 ORG ЗОН

ДОПВ:

гПОДПРОГРАММА ПРЕОЕРАЗОБАНИЯ КОДА ЧИСЛА б РЕГИСТРО-гВОЙ ПАРЕ (Б,О 6 ДОПОЛНИТЕЛЬНЫЙ КОД. гВХОПНОИ ПАРАМЕТР!(В»С)-ДВОИЧНОЕ ЧИСЛО.БЫХОДНОЙ ПАРА-гМЕТР!(Б»С)-ДОПОЛНИТЕЛЬННй код ЧИСЛА.ИСПОЛЬЗУЕТСЯ гРЕГИСТР А.

;0ЦЕНКА!ДЛИНА-8 БАЙТ»ЕРЕМЯ-43 ТАКТА.

0050 78

0051 2F

0052 47

0053 79

0054 2F

0055 4F

C>A

0056 03

0057 С9

ДОЛД:

гПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ КОДА ЧИСЛА В РЕГИСТРО-?ВОЙ ПАРЕ (D.E) 6 ДОПОЛНИТЕЛЬНЫЙ КОД. ;БХ0ДН0й ПАРАМЕТР:(DrE)-ДВОИЧНЫЙ КОД ЧИСЛА,ВЫХОДНОЙ гПАРАМЕТР:(ВгЕ)-ДОПОЛНИТЕЛЬНЫЙ КОД.ИСПОЛЬЗУЕТСЯ РЕ-

ггистр А.

гОЦЕНКА!ДЛИНА-8 БАЙТВРЕМЯ-43 ТАКТА.

0056 7А

005V 2F

005А 57

005В 7В

OOSC 2F

005» 5F

005Е 13

005F С9

допн:

;подпрограмма преобразования кода числа в регистро-

;Б0й паре (HrL) в дополнительный код.

;входной параметр:(HrL)-двоичный код числа.выходной

3-1926 65



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