Доставка цветов в Севастополе: 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,5л:; во-вторых, имеется возможность задавать в качестве параметра точность вычисления результата (количество значащих цифр) и, в-третьих, можно проверять количество выполненных итераций, зависящих как от требуемой точности вычислений, так и от значений аргумента. В программе используются две дополнительные трехбайтные области памяти БУФД и ЬУФ для хранения промежуточных результатов.

Сравнение результатов двух соседних итераций выполняет подпрограмма СРПЗЗ:

19Е0 0058 0060

ДОПД ДОПН

ORG SET SET

19Е0Н S8H 60Н СРПЗЗ:

{ПОДПРОГРАММА СРАВНЕНИЯ С ЗАДАННОЙ ТОЧНОСТЬЮ ДВУХ ТРЕХ-{БАЙТНЬК В ДОПОЛНИТЕЛЬНОМ КОДЕ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ {ФОРМАТА (8т16)=(П0Р{СТБ,МЛБ).

{ВХОДНЫЕ ПАРАМЕТР!!:(H»L)-АДРЕС ЧИСЛА It(Э,Е)-АЯРЕС ЧИСЛА S2f (В.О-МАСКА точности (СОДЕРЖИТ НУЛИ В МЛАДШИХ НЕЗНА-{ЧАШИХ И ЕДИНИЦЫ В СТАРШИХ ЗНАЧАЩИХ РАЗРЯДАХ).ВЫХОДНЫЕ {ПАРАМЕТРЫ:СУ=1-ПРИЗНАК ТОГОгЧТО 41 < 42{CY=0 (Z=0>-{ПРИЗНАК ТОГОтЧТО 41 ) Ч2{2=1-ПРИЗНАК РАВЕНСТВА ЧИСЕЛ. {ИСПОЛЬЗУЮТСЯ И СОХРАНЯЮТСЯ ВСЕ PErnCTPllfKPOME А.ГЛУБИНА {СТЕКА-Ю.ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ: «ДОПД»г»ЯОПН». {0ЧЕНКА;ЯЛИНА-64 БАЙТА (+16 БАЙТ ПОДПРОГРАММ),БРЕНЯ-НЕ {БОЛЕЕ 437 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

{СРАВНЕНИЕ ПОРЯДКОВ

{СОХРАНЕНИЕ МАСКИ {(А)-БАЙТ ПОРЯДКА П0Р2 {ИСКЛЮЧЕНИЕ ЗНАКА {(С)-ПОРЯДОК П0Р2 {(А)-БАЙТ ПОРЯДКА П0Р1 {ИСКЛЮЧЕНИЕ ЗНАКА {СРАВНЕНИЕ П0Р1 И Г0Р2 {ЕСЛИ П0Р1=П0Р2

{Z=0,nOPl НЕ= П0Р2 С В ПРЯМОЙ КОД {ВОССТАНОВЛЕНИЕ МАСКИ {СОХРАНЕНИЕ АДРЕСА 1 {СОХРАНЕНИЕ АДРЕСА 2 {СОХРАНЕНИЕ МАСКИ {СОХРАНЕНИЕ АДРЕСА 2

19Е0 05

PUSH

19Е1 1А

LDAX

19Е2 E67F

19Е4 4F

19ES 7Е

19Е6 E67F

i9E8 В9

19Е9 САЕЕ19

ПЕР1

19ЕС С1

19EI1 С9

{ПРЕОБРАЗОВАНИЕ HAH

19ЕЕ С1

ПЕР1: POP

19EF Е5

PUSH

19F0 D5

PUSH

19F1 С5

PUSH

19F2 D5

PUSH

19F3 7Е

19F4 17

19F5 23

19F6 56

19F7 23

19F8 5Е

19F9 DC5800

яопд

19FC С1

19FI1 OA

LDAX

{CY-3HAK ЧИСЛА1

{(Г,Е>-СТБ»МЛБ НАНТИССЫ 1 {ДОПОЛНЕНИЕ МАНТИССЫ 1 {ВОССТАНОВЛЕНИЕ АДРЕСА 2



19FE 17 19FF 03 lAOO OA lAOl 67 1A02 03 1A03 OA 1AD4 6Г 1A05 DC6000

1A08 CI

LDAX

LDAX

НгА В

L>A ДОПН

JCY-3HAK ЧИСЛА 2

s(H»L)-CTBfMflE МАНТИССЫ 2 гДОПОЛНЕНИЕ МАНТИССЫ 2

гМАСКИРОВАНИЕ НЕЗНАЧАЩИХ РАЗРЯДОВ МАНТИССЫ 2

5ВОССТАНОВЛЕНИЕ «АСКИ

1Й09 79

;(A)-MACKA HA МЛВ

1ADA А5

1А0В 6F

1А0С 78

;(A)-МАСКА HA CTB

lAOti А4

1А0Е 67

;МАСКИРОВАНИЕ НЕЗНАЧАЩИХ РАЗРЯДОВ МАНТИССЫ 1

1A0F 79

s(A)-МАСКА HA МЛВ

1А10 A3

1А11 5F

1А12 78

!(A>-HAQ\A HA CTE

1А13 А2

;(A)-CTB1#(MACKA>

;СРАВНЕНИЕ

МАНТИСС

1А14 ВС

JCPABHEHME CTBl И СТБ2

1А15 СА1В1А

ПЕР2

!ЕСЛИ СТБ1=СТЕ2

1А18 D1

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

1А19 Е1

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

1А1А С9

!Z=0.CTB1 НЕ= СТЕ2

1А1В 7В

ПЕР2! MOV

г(А)-НЛБ1»(МАСКА)

1А1С BD

lAlti Dl

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

lAlE El

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

lAlF C9

гг=?.су=?

0000

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

Тестовые данные для программы ККОР при маске FFFF приведены в табл. 4.4, где k - количество итераций.



А\<1

0,2000-10» 0,2000-10 0,2000-10 0,2000-10 0,1000-10

ЗЕСССС

428000

459FFF

48C7FF

51C34F

0,4472-10» 0,1414-10 0,4472-10 0,1414-10 0,3162-10

3FE4F9 41В505 438F1B 44Е246 499Е19

5 3 4 6 10

В случае маски F000, сохраняющей лишь две старшие значащие десятичные цифры результата, вычисление, например, у = д/о требует двух итераций вместо пяти. Заметим, что искомый результат получается на предпоследней итерации, а последняя итерация лишь контролирует его правильность.

4.6. факториал

Программа ФАКТОР вычисляет факториал y = N\ методом последовательного перемножения сомножителей:

1810 1220 1000 00В8

1810 F5

1811 214918 1814 114С18 1817 CI1B800 1S1A 50

ORG 1810Н УДПЗЗ SET 1220Н СДПЗЗ SET ЮООН ПМЗ SET 0В8Н

ФАКТОР:

;»»»»«» ж»»»»»»»*»»»»»»»»»»»»»»» ж»»»»»»»»»»»»»»»»»»»»»»)!» ;ПОДПРОГРАММА ВЫЧИСЛЕНИЯ ФАКТОРИАЛА y=N! (N < 21) {ВХОДНЫЕ ПАРАМЕТРЫ: (В,О-АДРЕС РЕЗУЛЬТАТА г ПРЕДСТАВЛЯЕМО-{ГО Б ФОРМАТЕ 3-БАЙТНОГО ДВОИЧНОГО ЧИСЛА В ДОПОЛНИ ГЕЛЬ-{НОМ КОДЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ,(А)-ВЕЛИЧИНА N В ФОРМАТЕ {ЧЕЛОГО двоичного БЕЗЗНАКОВОГО ЧИСЛА.ВЫХОЯНОЙ ПАРАМЕТР: !CY=1-ПРИЗНАК ПЕРЕПОЛНЕНИЯ ПОРЯДКА.ИСПОЛЬЗУЮТСЯ ВСЕ РЕ-{ГИСТРЫтСОХТАНЯЮТСЯ (В,С)г(А),ГЛУБИНА СТЕКА-22.ИСП0ЛЬ-{ЗУЕТСЯ 3-БАЙТНАЯ КОНСТАНТА "ОДИН" И 3-БАЙТНАЯ РАБО-{ЧАЯ ОБЛАСТЬ ПАМЯТИ "БУФЕР".ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ: {«УДПЗЗ».ККОМЗ»,»0БНЗ».»УДФ17»,»НМАН2»,»СДПЗЗ»,»ПМЗ» г {жОБМЗ». «ЯМАН2» г «ПМАН2», «ДОПВ» т «ЯОПД », »У32Б», »У24А«. {0ЧЕНКА:ДЛИНА~56 БАЙТ (+475 БАЙТ ПОЯПРОГРАММ) гВРЕМЯ-НЕ {БОЛЕЕ (350+4779»(N-1)) ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ).

{»»»»»»»«»»»»»»9(»«»»»»»»»»9(»»»»»»»«»»»N»«»»»»«»»»«»»»»»»

{ЗАНЕСЕНИЕ В "БУФЕР" И ОБЛАСТЬ РЕЗУЛЬТАТА КОНСТАНТЫ "1" PUSH PSU {СОХРАНЕНИЕ N LXI Н,ОДИН {(HrL)-АДРЕС" КОНСТАНТЫ LXI ВтБУФЕР {(ПгЕ)-АДРЕС БУФЕРА CALL ПМЗ {ПЕРЕМЕЩЕНИЕ "1" В "БУФЕР" MOV DfB



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