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

06F6 47 мои BfA

06F7 El ПЕР2: POP H ; ВОССТАНОВЛЕНИЕ МЛАЙШИХ

C9 RET ;БАЙТОВ ПР0ИЗВЕЙЕНИЯ

0000 END

Тестовые данные для программы УД32 приведены в табл. 1.10.

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

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

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

FFFF-FFFF = 00000001 ( 1).(-1) = + 1

FFFF-0001 = FFFFFFFF ( 1).(+1) = -1

FO0O-000F= FFFF1000 (-4096) • (+15)= -61440

FFOO- OOFF= FFFF0100 (-256) - (+255)= -65280

5555 - АААА = Е38Е1С72 (+21845) • (- 21846) = -477225870

7FFF-7FFF = 3FFF0001 (+32767) • (+32767)= + 1073676289

1.3.3.4. Формат 8-24=32

Программа УД248 реализует умножение чисел формата 8-24 = 32 как сумму произведений МН соответственно на МЛБ и СРБ ММ формата 8 • 16 = 24 и СТБ ММ формата 8-8=16, используя быстродействующие подпрограммы У24А и У88Б1 и операцию вычитания поправок из псевдопроизведения:

0700 ORG 700Н

05D0 У24А SET 5D0H

0570 У88Е1 SET 570Н

УД248:

ЯГОДПРОГРАМНА УМНОЖЕНИЯ «ЕЛНХ ДВОИЧНЫХ ЧИСЕЛ В ДОПОЛ-гНИТЕЛЬНОМ КОДЕ ФОРМАТА 24*8=32.

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

;ВХОДННЕ ПАРАМЕТРЫ:(СгВ»Е)-МНОЖИМОЕг(А)-МНОЖИТЕЛЬ. гВНХОДННЕ ПАРАМЕТРЫ:(BtCfHfL)-ПРОИЗВЕДЕНИЕ.ИСПОЛЬ-;ЗУЮТСЯ ВСЕ РЕГИСТРН.ГЛУЕИНА СТЕКА 12.ИСПОЛЬЗУЮТСЯ гПОДПРОГРАММН »У24А«.*У88Е1».

?ОЦЕНКА:ДЛИНА- 70 (+18 »У24А« + 17 «УвеВ!») БАЙТА» ;ВРЕМЯ-НЕ БОЛЕЕ 1264 ТАКТА (С УЧЕТОМ ПОДПРОГРАММ).



0700 F5

rusH

;СОХРАНЕНИЕ МНОЖИТЕЛЯ

гОБНУЛЕНИЕ текущей СУММЫ ЧТТ

0701 AF

0702 67

0703 6F

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

0704 El

0705 B2

0706 ЕЗ

0707 C20E07

ПЕР1

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

070A Fl

;БАЛАНС СТЕКА

070E C31307

llbP2

5МН0ЖИМ0Е=0

;ПРОВЕРКА МНОЖИТЕЛЯ НА 0

070E Fl

ПЕР1: POP

! ВОССТАНОВЛЕНИЕ МНОЖИТЕЛЯ

070F E7

0710 C21607

ПЕРЗ

5 ЕСЛИ МНОЖИТЕЛЬ НЕ 0

5ОБНУЛЕНИЕ ПРОИЗВЕДЕНИЯ

0713 47

ПЕР2: MOV

0714 4F

0715 C9

;ВЫПОЛНЕНИЕ

УМНОЖЕНИЯ

СРБ!МЛБ МНОЖИМОГО НА МНОЖИТЕЛЬ

0716 F5

ПЕРЗ: PUSH

;СОХРАНЕНИЕ МНОЖИТЕЛЯ

0717 C5

PIKH

; СОХРАНЕНИЕ СТБ ЖОЖИМОГО

0718 115

PUSH

;СОХРАНЕНИЕ СРБ,МЛБ МНОЖИМОГО

0719 FS

PUSH

5 СОХРАНЕНИЕ СТБ МНОЖИТЕЛЯ

071A C5

PUSH

J СОХРАНЕНИЕ СТБ МНОЖИМОГО

071E CtiDOOS

CALL

У24А

;<А,H,L)-ПРОИЗВЕДЕНИЕ 1 fflPl)

;ВЫПОЛНЕНИЕ

УМНОЖЕНИЯ

СТБ МНОЖИМОГО НА МНОЖИТЕЛЬ

071E Dl

;(Е)-СТБ МНОЖИМОГО

071F 4F

;(С)-стн ПР1

0720 Fl

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

0721 E5

PUSH

fСОХРАНЕНИЕ СРБ,МЛБ ПР1

0722 C5

PUSH

гСОХРАНЕНИЕ СТБ ПР1

0723 CD7005

CALL

У88Б1

;(H,L)-ПРОИЗВЕДЕНИЕ ПР2

! СЛОЖЕНИЕ ПР2 CO СДВИГОМ HA 2 БАЙТА ВПРАВО С ПР1

0726 CI

?(С)-СТБ ПР1

0727 0600

0729 09

072A 44

072E 4D

;<Е,С>-СТБ,СРБ2 РЕЗУЛЬТАТА

072C El

?(Н,0-СРБ1,МЛБ РЕЗУЛЬТАТА

072D Dl

5(В,Е)-СРБ,МЛЕ МНОЖИМОГО

JПРОВЕРКА ЗНАКА МНОЖИТЕЛЯ:<A)-МНОЖИТЕЛЬ

072E 17

072F D23D07

ПЕР4

;ЕСЛИ ЗНАК "+"

ВЫЧИТАНИЕ МНОЖИМОГО ИЗ СТАРШИХ БАЙТОВ ПРОИЗВЕДЕНИЯ

0732 7C

0733 93

гВЫЧИТАНИЕ МЛЕ

0734 67

- MOV

0735 79

0736 9A

fВЫЧИТАНИЕ СРБ

0737 4F

0738 E3

XTHL

0739 78

073A 9D

;ВЫЧИТАНИЕ СТБ



0731В 47

073С ЕЗ

XTHL

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

073ti tH

ПЕР45 POP

;(Е)-СТБ МНОЖИМОГО

073Е 7В •

073F 17

0740 Dl

;<D>-МНОЖИТЕЛЬ

0741 DO

;ЕСЛИ ЗНАК "+"

; ВЫЧИТАНИЕ МНОЖИТЕЛЯ ИЗ СТБ ПРОИЗВЕДЕНИЯ

0742 78

0743 92

0744 47

Р»А

0745 C9

OOOO

Для временного хранения промежуточных результатов в программе задействована область стека. Тестовые данные для программы УД248 приведены в табл. 1.И.

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

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

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

десятичное

FF-FFFFFF = 00000001 01 -FFFFFF = FFFFFFFF OF-F00000=FF100000 АА-555555 = £3555572 80-800000- 40000000 7F-7FFFFF = 3F7FFF81

(-1)-(-1) = + 1

(-1-1)-(-1)=-1

(+15) (-1048576) = -15728640

(-86) (+5592405)= -480946830

(- 128) - (-8388608) = +1073741824

(+127) - (+8388607) = +1065353089

1.3.4. ДРОБНЫЕ ЧИСЛА СО ЗНАКОМ

1.3.4.1. Умножение дробных чисел

Программы, приведенные ниже, реализуют умножение дробных двоичных чисел в дополнительном коде форматов 16-16=16, 17-17=17, 24-24 = 24 на основе обращения к соответствующим подпрограммам целочисленной арифметики, рассмотренным выше. Кроме того, приводится программа умножения формата 16- 16 = 32, основанная на алгоритме Бута. Формат произведения здесь не ограничен форматом сомножителей, как в других программах умножения чисел ограниченной точности, что позволяет использовать программу и для умножения целых точных чисел.



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