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

1310 Е5

1311 С5

1312 ЕВ

1313 СВ9000

1316 ЕВ

1317 С22313

131А 21ВА13 131С ССАЗОО

1320 С1

1321 Е1

1322 С9

У1Ш31,

;««*«««к«х«»«»»««««к»«*-»«««-»»»«»»»««»»к»»»«»к»»»«»»»»»»»

гпойпгогрйммА УМНОЖЕНИЯ ЦЕЛОГО бе:ззнакового двоичного

;ЧИСЛА ФОРМАТА В«М НА 3-ЕАИТНОЕ ДВОИЧНОЕ ЧИСЛО С ПЛА-jBAWUIEH запятой в ДОПОЛНИТЕЛЬНОМ КОДЕ ФОРМАТА <8т16) = ;<ПОР.МЛН).ГДЕ ЕАИТ ПОРЯДКА СОДЕРЖИТ ЕИТ ЗНАКА МАНТИССЫ ;И ЦЕЛОЧИСЛЕННЫЙ ДВОИЧНЫЙ ПОРЯДОК СО СМЕЩЕНИЕМ +40Н.А 2 ;ЕАИТА МАНТИССЫ-СТЕ, МЛЕ-йРОЕНОЕ: НОРМАЛИЗОВАННОЕ ЧИСЛО. ;входные ПАРАМЕТРЫ: <С,Е)-АДРЕС СОЖОЖИТЕЛЯ СМ1 С ПЛАВА-•,тт ЗАПЯТОЙ, <H»L)-адрес ЦЕЛОЧИСЛЕННОГО СОМНОЖИТЕЛЯ» (С) гКОЛИЧЕСТВО М ЕАИТ ЦЕЛОГО ЧИСЛА.ВЫХОДНЫЕ ПАРАМЕТРЫ5пр0из-;ВЕДЕНИР>3-ваитн0е ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ В ОЕЛАСТИ ;ПАМЯТИ "ЕУФЕРЧСУ-ПРИЗНАК ПЕРЕПОЛНЕНИЯ ПОРЯДКА ПРОИЗВЕ-;ДЕНИЯ.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ»СОХРАНЯЮТСЯ <BfЕ)»(HrL) ;ГЛУЕ№1А СТЕКА-В.ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ:*к0мз*»*ОЕНЗ* ;*ДОПД* т «ДОПВ» т*ПОСН«.

;0ценка:ДЛИНА-171 ЕАИТ (+41 ЕАИТ ПОДПРОГРАММ) fВРЕМЯ -НЕ jЕОЛЕЕ (712+1443*N) ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ)

PUSH H f СОХРАНЕНИЕ АДРЕСА CM2

PUSH в гСОХРАНЕНИЕ АДРЕСА CM!

гПРОВЕРКА СОМНОЖИТЕЛЯ СМ1 НА НОЛЬ XCHG

CALL КОМЗ г2-=1»ЕСЛИ СМ1=0 XCHG

JMZ пер1 гЕСЛИ СМ1 НЕ О гОЕНУЛЕНИЕ ПРОИЗВЕДЕНИЯ

ПЕР2: LXI Н..ВУФЕР г(Н.Е)-АДРЕС ПРОИЗВЕДЕНИЯ

CALL ОЕНЗ

POP С гВОССТАНОВЛЕНИЕ АДРЕСА СМ1

POP Н ;ВОССТАНОВЛЕНИЕ АДРЕСА СМ2

RET гЕСЛИ CM=0»(CY=0)

гПРОВЕРКА СОМТОЖИТЕЛЯ СМ2 НА НОЛЬтОПРЕДЕЛЕНИЕ НОМЕРА Ш гСТАРШЕГО НЕНУЛЕВОГО ЕАИТА СМ2

1323 АР

ПЕР1! XRA

1324 В1

1325 СА1А13

ПЕР2

гЕСЛИ N=0

1328 Е5

PUSH

гСОХРАНЕНИЕ АДРЕСА СМ2

1329 0600

132Б 09

132С 2В

г(HrL)-АДРЕС СТЕ СМ2

132В АГ

г(А)=о

132Е В6

ЦИКЛ1: ORA

гПРОВЕРКА БАЙТА НА 0

132F С23В13

ПЕРЗ

гЕСЛИ БАЙТ НЕ 0

1332 2В

1333 ОС

гУМЕНЫЛЕНИЕ N*=N-1

1334 С22Е13

ЦИКЛ1

; ЗАЦИКЛИВАНИЕ 1

1337 Е1

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

1338 С31А13

ПЕР2

гсм2=о

133В Е1

пе:рз; pop

гВОССТАНОБЛЕНИЕ АДРЕСА СМ2

гсомножитЕЛИ

HE 0.ЗАГРУЗКА МАНТИССЫ CM! Б РЕГИСТР!,!

133С С5

PUSH

SCOXPAfCHHE N*

133С ЕВ

XCHG

г(HrL)-АДРЕС СМ1

133Е 7Е

133F Ej580

гВЫДЕЛЕНИЕ ЗНАКА СМ1

1341 23

1342 46

1343 23

1344 4Е



1345 ев

xchg

((h.l)-адрес см2

134й 50

1347 59

((В.е)-мантисса

1348 fc5800

допд

(дополнение.если знак "-"

134в С1

(восстановление n«

(подготовка

регистров к циклу умножения

134с е5

push

(сохранение адреса еМ2

134в 21ва13

н.еуфер

1350 3608

((буфер)=8-счет сдвигов цикла ,

1352 23

1353 AF

1354 77

((буфер+1)=0-0бщии СЧЕТ сдвигов

1355 67

1356 6f

((н.е)=0-сумма чп

1357 ез

xthl

((H.l)-текущий адрес см2

(цикл ужожения HA текущий ЕАИТ целого числа

1358 46

цикл2! mov

((б)-байт множителя

1359 ез

xthl

((H.L)-текущая сумма ЧП

(сдвиг множителя вправо

135А Af-

никлз: XRA

(eY=o

135в 78

135с IF

135» 47

135е в26513

пер4

(если разряд множителя=0

(сложение мантиссы-множимого С суммой чп

1361 19

1362 da6e13

пер5

(если переполнение суммы

(проверка гПОСЛЕДНИ! ненулевой ЕАИТ множителя ?

1365 79

пер4: mov

1366 3d

1367 с26е13

пер5

(если n*)l

136А 80

((а)-остаток множителя при n*=l

13йВ са9013

ПЕРб

(если оетАток=о

(сдвиг суммы

чп вправо.проверка конца цикла 3

136е св7800

пер5: call

поен

(сдвиг вправо (H.l)

1371 заба13

буфер

((А)-счет сдвигов цикла

1374 3D

1375 32ва13

буфер

(запоминание счетчика

1378 с25а13

циклз

(зацикливание 3

(подготовка

счетчиков к продолжению цикла 2

137в е5

push

137с 21ва13

н.еуфер

137f 3608

((буфер)=8

1381 23

1382 7е

1383 с608

(увеличение общей суммы сдвигов

1385 77

1386 е1

(проверка конца цикла умножения

1387 ов

(уменьшение n*

1388 са9013

ПЕРб

(если n*=0

138в ез

xthl

((H.L)-текущий адрес ем2

138с 23

((H.L)-адрес следующего ЕАИТА

138в с35813

цикл2

(зацикливание 2

(окончание цикла умножения

1390 е5

ПЕРб! push

(сохранение произведения

1391 21ва13

н.буфер

1394 зе08

1396 96

((а)-последнее число сдвигов



1397 23

1398 86

г(А)-СУММАРНОЕ ЧИСЛО СДВИГОВ

1399 28

139А 77

М»А

г(БУФЕР)-СУММАРНОЕ ЧИСЛО СДВИГИ

гДОПОЛНЕНИЕ ОТРИЦАТЕЛЬНОГО ПРОИЗВЕДЕНИЯ

139В С1

г(В.С)-ПР0ИЗВЕДЕНИЕ

139С В1

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

139В В1

гВОССТАНОБЛЕНИЕ АДРЕСА СМ1

1391: 1А

LBAX

5 (А)-ЕАИТ ПОРЯДКА СМ1

139F В5

PUSH

гСОХРАНЕНИЕ АДРЕСА СМ1

13А0 5F

Е»А

г(Е)-БАЙТ ПОРЯДКА СМ1

13А1 Е680

гВЫДЕЛЕНИЕЗНАКА СМ1

13АЗ 57

гСОХРАНЕНИЕ ЗНАКА В (D)

13М FC5000

ДОПВ

гДОПОЛНЕНИЕ ПРОИЗВЕДЕНИЯfЕСЛИ "•

13А7 7В

г(А)-БАЙТ ПОРЯДКА СМ1

13А8 E67F

гИСКЛИЧЕНИЕ ЗНАКА СМ1

13АА 86

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

13АВ F5

PUSH

гСОХРАНЕНИЕ ПРИЗНАКОВ

13АС В2

г ВСТАВКА ЗНАКА ПРОИЗВЕДЕНИЯ

гЭАПИСЬ ПРОИЗВЕДЕНИЯ В

БУФЕР

13АВ 77

гЗАПИСЬ ПОРЯДКА ПРОИЗВЕДЕНИЯ

13АЕ 23

13AF 70

гЗАПИСЬ СТЕ ПРОИЗВЕДЕНИЯ

13В0 23

13В1 71

гЗАПИСЬ МЛЕ ПРОИЗВЕДЕНИЯ

13В2 F1

гВОССТАНОБЛЕНИЕ ПРИЗНАКОВ

13ВЗ В1

гВОССТАНОБЛЕНИЕ АДРЕСА СМ1

13В4 Е1

гВиССТАНОВЛЕНИЕ АДРЕСА СМ2

13В5 В8

гЕСЛИ ПЕРЕПОЛНЕНИЕ П0РЯДКАтСУ=1

13В6 37

гсу=1

13В7 F8

гЕСЛИ ПЕРЕПОЛНЕНИЕ ПОРЯДКА

13В8 AF

гСУ=о

13В9 С9

гПЕРЕПОЛНЕНИЯ НЕТ

гОБЛАСТЬ ХРАНЕНИЯ РЕЗУЛЬТАТА

13ВА

БУФЕР: BS

гЗ ЕАИТА

0000

Результат размещается в области памяти БУФЕР. Программа обращается к ряду вспомогательных программ, рассмотренных ранее. Умножение непосредственно выполняется лишь после проверки обоих сомножителей на нуль, причем проверка Л-байтного сомножителя осуществляется, начиная с его старших байтов. Тем самым в дальнейшем исключаются из процесса умножения старшие незначащие (нулевые) байты числа. Мантисса сомножителя с плавающей запятой загружается из памяти в регистры микропроцессора, преобразуется из дополнительного кода в прямой, и далее выполняются вложенные циклы умножения: внутренний ЦИКЛЗ и внешний ЦИКЛ2. Умножение текущего байта целого сомножителя на положительный сомножитель с плаваю-



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