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

;ПАРАМЕТР!(Н.и)-ПОПОЛНИТЕЛЬНЫИ КОД.ИСПОЛЬЗУЕТСЯ РЕ-;ГИСТР А.

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

0060 7С

0061 2F

0062 67

0063 7С

0064 2F

0065 6F

0066 23

0067 С9

0000

Эти вспомогательные программы широко используются далее при разработке арифметических программ.

Тестовые данные для программы УДФ16 приведены в табл. 1.12 (запятая в данных подразумевается после первого бита старшей шестнадцатеричной цифры).

Табл. 1.12. Тесты умножения формата )6-16=16 (дробные двоичные числа в дополнительном коде)

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

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

десятичное

4000-4000 = 2000 7FFF-7FFF=7FFE 5555-5555 = 38ЕЗ АААА-АААА = 38Е4 5555 - АААА = С7 ID FFFF-FFFF = 0000

0,5-0,5=0,25 0,99996 0,99996=0,99992 0,66666 - 0.66666=0.44443 (-0,66666) - (-0,66666)=0.44443 0.66666 •(-0.66666)=(-0,44443) (-0,00003) - (-0,00003)=0,00000

1.3.4.3. Формат 17-17=17

Программа УДФ17 в отличие от всех предыдущих программ умножения оперирует с сомножителями, размещенными не на регистрах, а в памяти системы, причем знак каждого сомножителя расположен в старшем разряде знакового байта, а цифровая часть сомножителя - в двух соседних байтах:

0790 0050 0058 0630

ДОПВ ДОПД У32Б

ORb SET SET SET

790H 50H

630H

УДФ17:

гПОДПРОГРАММА УМНОЖЕНИЯ ДВОИЧНЫХ ЧИСЕЛ Б ДОПОЛНИТЕЛЬНОМ ?КОДЕ С ФИКСИРОВАННОЙ ПОСЛЕ ЗНАКОВОГО РАЗРЯДА ЗАПЯТОЙ



0790 D5

0791 Е5

0792 lA

0793 AE

0794 F5

0795 ЕВ

0796 7E

0797 Б7

0798 23

0799 46 079A 23 079В 4E 079C EE 079D FC5000

07A0 7E 07A1 В7 07A2 23 07A3 56 07A4 23 07A5 5E 07A6 FC5800

07A9 CD3006 07AC 7C 07AB 17 07AE B2B207 07E1 03 07E2 Fl 07E3 FC5000 07E6 El 07E7 Dl 07B8 C9 0000

SOOPMATA (1»16)»(1,16> = (1»16ЫДЕ <1516> = (3HAK>CTE,M№) !ЕХОДНЫЕ ПАРАМЕТРЫ: (В,Е)--АДРЕС МНОЖИМОГО ММ В ПАМЯТИ, ;(H,L)-АДРЕС МНОЖИТЕЛЯ МН В ПАМЯТИ.ВЫХОДНОЙ ПАРАМЕТР; 5(Е,С>-ДЕА СТАРШИХ БАЙТА ПРОИЗВЕДЕНИЯ.ИСПОЛЬЗУЮТСЯ ВСЕ ?РЕГИСТРЫ,СОХРАНЯЮТСЯ (D,E),(H,L).ГЛУБИНА СТЕКА-8.ИС-;ПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ s «ДОПВ»,»ДОПД«,«У32Б»,»У24А». SОЦЕНКА:ДЛИНА-41 БАЙТ (+76 БАЙТ ПОДПРОГРАММ),ВРЕМЯ-НЕ гВОЛЕЕ 1481 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

PUSH В PUSH Н

J ПРОВЕРКА ЗНАКОВ СОМНОЖИТЕЛЕЙ НА СОВПАДЕНИЕ LBAX В

XRA М ?(A7)=1,(S=1),ЕСЛИ ЗНАКИ РАЗНЫЕ

PUSH PSW ;СОХРАНЕНИЕ ПРИЗНАКОВ гПЕРЕСНЛКА МНОЖИМОГО ИЗ ПАМЯТИ Б (В,С) XCHG

MOV А,М ORA А INX Н MOV Е,М INX Н MOV CM XCHG

CM ДОПВ гД0П0ЛНЕ»1Е ММ,ЕСЛИ MM <0

гПЕРЕСЫЛКА МНОЖИТЕЛЯ ИЗ ПАМЯТИ Б (D,E)

г ПРОЯВЛЕНИЕ ПРИЗНАКА ЗНАКА

5(В,С)-МНОЖИМОЕ

MOV ORA INX MOV INX HOV CM

D,M H

ДОПД

гПРОЯВЛЕНИЕ ПРИЗНАКА ЗНАКА

J(BrE)-МНОЖИТЕЛЬ ;ДОПОЛНЕНИЕ МН.ЕСЛИ МН <0 !ЕЕЗЗНАК0Е0Е УМНОЖЕНИЕ ДЕОИЧНЫХ ЧИСЕЛ 16*16=32

CALL У32Е (E,C,H,L)-nP0ИЗBEДEHИE (ПР)

MOV RAL JNC INX

ПЕР: POP СМ POP POP RET END

ПЕР В

PSW ДОПВ Н В

!ОКРУГЛЕНИЕ СТБ,СРБ ПР ;ВОССТАНОБЛЕНИЕ ПРИЗНАКОВ fДОПОЛНЕНИЕ ПР,ЕСЛИ ПР (О

Программа УДФ17, как и УДФ16, использует обращение к подпрограмме беззнакового умножения У32Б и вспомогательным программам ДОПВ, ДОПД, но в отличие ОТ программы УДФ16 не производит сдвига влево произведения, так как в данном случае цифровые части сомножителей можно интерпретировать как дробные беззнаковые числа. Кроме того, в программе УДФ17 используется при переходе от полноформатного произведения к сокращенному симметричный метод округления



(1.9). Эта программа является базовой при построении программ умножения чисел с плавающей запятой (об этом см. в гл. 2). Тестовые данные для программы УДФ17 МОЖНО получить из табл. 1.12 путем сдвига ее данных на ОДИН двоичный разряд влево.

1.3.4.4. Формат 24-24=24

Программа УДФ24, как и УДФ17, оперирует с сомножителями, размещенными в памяти, причем каждый сомножитель содержит три байта (СТБ, СРБ, МЛБ) со знаковым разрядом в старшем бите СТБ:

0810

810H

0108

ДОПЗ

108H

0050

ДОПЕ

05П0

5D0H

0570

У88Е1

570H

0810 US

0811 E5

0812 lA 0313 AE 0814 F5

0315 lA

0816 B7

0817 EE

0818 FC0801 081B ЕБ 081C 7E OeiC Б7 OSIE FC0801

0821 E5

0822 EE

0823 56

0824 23

0825 5E

0826 23 0627 7E 0328 El

УДФ24:

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

;ВХОДННЕ ПАРАМЕТРЫ!(ВгЕ)-АДРЕС МНОЖИМОГО ММ Б ПАМЯТИ» f(H»L)-AflPEC МНОЖИТЕЛЯ МН В ПАМЯТИ.ВЫХОДНОЙ ПАРАМЕТР: f(A»B»C)-TPH СТАРШИХ БАЙТА ПРОИЗЕЕДЕНИЯ.ИСПОЛЬЗУЮТСЯ ВСЕ SРЕГИСТРЫ.СОХРАНЯЮТСЯ (D.E)t(H.L).ГЛУБИНА СТЕКА-16.ИС-?ПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ!»Д0ПЗ»f*ДОПБ».»У24А»,«y88El». ?0ЦЕНКА!ДЛИНА-114 БАЙТ (+51 БАЙТ ПОДПРОГРАММ)»ВРЕМЯ-НЕ ;Б0ЛЕЕ 2682 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

PUSH D ;СОХРАНЕНИЕ АДРЕСА ММ

PUSH Н SСОХРАНЕНИЕ АДРЕСА МН

JHPOBEPKA ЗНАКОВ СОМНОЖИТЕЛЕЙ НА СОВПАДЕНИЕ LDAX В

XRA Н !5=1»ЕСЛИ ЗНАК-И РАЗНЫЕ

PUSH PSU S СОХРАНЕНИЕ ПРИЗНАКОВ гДОПОЛНЕНИЕ ОТРИЦАТЕЛЬНЫХ СОМНО ИТЕЛЕИ LBAX В

S ПРОЯВЛЕНИЕ ЗНАКА НМ

ORA ХСНС СМ ХСИ6 MOV ORA СМ

ДОПЗ

ДОПЗ

;ДОПОЛНЕНИЕ ММ

SПРОЯВЛЕНИЕ ЗНАКА МН SДОПОЛНЕНИЕ МН

;ЗАГРУЗКА МНОЖИМОГО 6 РЕГИСТРЫ

PUSH

ХСНС

DfM H

E»M H

A»M H

fСОХРАНЕНИЕ АДРЕСА МН ;(H»L)-АДРЕС MM

S(D»EfA)-CTE,CPE»MflE MM ?ВОССТАНОВЛЕНИЕ АДРЕСА МН



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