|
Главная -> Появление первого микропроцессора 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
Программа использует две дополнительные трехбайт-ные области памяти ОДИН и БУФЕР для хранения константы единицы в форме с плавающей запятой и временного запоминания промежуточного произведения. Поскольку формат результата ограничивает представление максимального числа (см. табл. 2.1), вычисление факториала ограничено значением N =19. Программу ФАКТОР можно использовать для вычисления всех 19 значений факториала с последующим их табличным представлением, аналогичным представлению степеней в программе СТЕПА. Такой подход позволяет резко сократить время вычисления (поиска) факториала. Тестовые данные для программы ФАКТОР приведены в табл. 4.5.
4.7. показательная функция Показательной является функция вида у = а, где а>0 и аф\. Функция определена на всем множестве действительных чисел и принимает только положительные значения, ограничена снизу, не имеет нулей и экстремумов, выпукла и непрерывна. При а > 1 она монотонно возрастает, при а <. 1 монотонно убывает. График функции расположен выше оси абсцисс и пересекает ось ординат в точке у=1 (рис. 4.6). Графики функций уа" и у - а" симметричны относительно оси ординат. Показательную функцию с основанием а можно свести к показательной функции с натуральным основанием е. Обозначим а = е{ЬфО). Тогда у = а= {6")" = 6" = ехр{Ьх). Функцию полученного вида называют экспоненциальной или экспонентой. Взяв натуральный логарифм от обеих частей последнего равенства, получим b ~\па. Таким образом, вычисление а можно свести к вычислению ехр{Ьх), где b = \па, или к вычислению ехр z, где z = bx. График функции у = е расположен между графиками функций у = = 2" я у = 3\ Экспоненциальная функция у = е, как было показано в § 4.1, хорошо аппроксимируется рядом Тейлора (4.5). Для обеспечения точности приближения порядка 0,5 X X 10" на сегменте [-1, +1] достаточно взять первые 8 членов ряда с коэффициентами 1, 1/1! = 1, 1/2! =0,5, 1/3!=.0,1667, 1/4! = 0,4167-10-, 1/5! = 0,8333 • IQ-, 1/6! = 0,1389-10-2 1/71=0,1984-10-1 Этод метод вычисления экспоненты реализует программа ЭКСПО: 1950 leEo 1931 ORG 1950Н ПОЛИН SET 18Е0Н БУФЕР SET 1931Н ЗКСПО: ?ПОЯПРОГРйММА ВЫЧИСЛЕНИЯ ЭКСПОНЕНТЫ У=Е»»Х (-1<=Х<=+1). {ВХОДНЫЕ ПАРАМЕТРЫ:(HrL)-АДРЕС АРГУМЕНТА,ПРЕДСТАВЛЕННОГО 1950 ЗЕ07 1952 115919 1955 CIiEOie 1958 C9 1959 195A 195C 19511 195F 1960 1962 1963 1965 1966 1968 1969 196B 196С 196E 196F 0000 !В Ф№МЕ З-БЙЙТНОГО ДВОИЧНОГО ЧИСЛА В ДОПОЛНИТЕЛЬНОМ ;КОДЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ.РЕЗУЛЬТАТ тПРИСТАВЛЯЕМЫЙ Б !АНАЛОГИЧНОМ БИДЕ.ПОМЕЩАЕТСЯ В ОБЛАСТЬ ПАМЯТИ "БУФЕР". ;БНХОДНОЙ ПАРАМЕТР!СУ=1-ПРИЗНАК ПЕРЕПОЛНЕНИЯ ИЛИ АНТИПЕ-гРЕПОЛНЕНИЯ ПОРЯДКА РЕЗУЛЬТАТА.ИСПОЛЬЗУЕТСЯ ДОПОЛНИТЕЛЬ-гНАЯ РАБОЧАЯ ОБЛАСТЬ ПАМЯТИ "КОЭФ" ОБЬЕМОМ 8»3=24 БАЙТ гДЛЯ ХРАНЕНИЯ КОЭФФИЦИЕНТОВ СТЕПЕННОГО РЯДА.ИСПОЛЬЗУЮТСЯ ;ВСЕ РЕГИСТРЫ.СОХТАНЯЕГСЯ (H.L) .ГЛУБИНА СТЕКА-26.ИСП0ЛЬ-; ЗУЮТСЯ ПОДПРОГРАММЫ: «ПОЛИН». »УДПЗЗ», «КОМЗ». «ОБНЗ», ;«УДФ17» f »НМАН2»,«СДПЗЗ» f »0ЕМЗ«»»ДМАН2».»ПМАН2».«ПМЗ»» ;»ДОПВ».«ДОПД»,«У32Е».«У24А«. 50ЦЕНКА!ДЛИНА-9 ЕАЙТ (+556 БАЙТ ПОДПРОГРАММ) .БРЕМЯ-НЕ ГЕОЛЕЕ 37 610 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). ;««««««««»»»»««««««««««««»«»«»»«««»«%«««x«H«««««»«»»»«»» ; ПОДГОТОВКА РЕГИСТРОВ К ВЫЧИСЛЕНИЮ ПОЛИНОМА MVI А,7 ;(А)-СТЕПЕНЬ П0ЛИН0МА=7 LXI СгКОЭФ ?(В.Е)-АДРЕС КОЭФФИЦИЕНТОВ !ВЫЧИСЛЕНИЕ ПОЛИНОМА CALL ПОЛИН RET 5С¥=1.ЕСЛИ ОШИБКА ПОРЯДКА !ОБЛАСТЬ КОЭФФИЦИЕНТОВ А(О).....А(7) 8000 41 8000 8000 ААБ4 АААВ ЗА 8887 37 В60Е 11009 КОЭФ: СВ BU ВБ ВЫ ВВ ВЫ ВВ tiU ВВ СВ tiU ВВ DU ВВ 0080Н 0080Н ооеон 0В4ААН OADAAH 8788Н 0ЕВ6Н 09D0H ;А(0)=1=41 80 ООН !А(1)=1=41 80 ООН 5А(2)-0.5-40 80 ООН ;А(3)=0.1667=ЗЕ АА В4Н ;А(4)=0.4167»10»»(-1)=ЗС АА АВН iiA(5)=0.8333»10»»(-2)=3A 08 е7Н ;А(6)=0.1389«10«»(-2)=37 Б6 ОЕН SA(7)=0.1984»10»»(-3)=34 DO 09Н Программа вычисляет экспоненту с помощью подпрограммы нахождения полинома ПОЛИН. Двоичные значения коэффициентов полинома получены предварительно посредством программы ППЗЮ. Тестовые данные для программы ЭКСПО приведены в табл. 4.6. Табл. 4.6. Тестовые данные у=ех
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.0068 |
|