|
Главная -> Появление первого микропроцессора 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 Окончание табл. 4.2
4.4. полином Полином y=Sa,-х определен на множестве всех действительных чисел х, а,- и изображается на графике кривой без особых точек и без асимптот, причем кривая имеет не более п точек пересечения с осью абсцисс, не более п- 1 экстремумов и не более п - 2 точек перегиба. Конкретный вид кривой существенно зависит от значений п, ai и X. Например, если а,= 1 для всех i, то графики полиномов любой степени подобны графикам степенной функции, но с иным размещением относительно начала координат и с дополнительной деформацией ординат. Программа ПОЛИН вычисляет значение полинома по схеме Горнера [см. формулу (3.2) ]: 18Е0 ORG 18Е0И 1220 УДПЗЗ БЕТ 1220Н 1000 СДПЗЗ set ЮООН ООАЗ ОБНЗ set ОАЗН 0ОБ8 ПМЗ set 0В8Н ПОЛИН: гПОДПРОГРАММА ВЫЧИСЛЕНИЯ ПОЛИНОМА СТЕПЕНИ N (N<256): ;Р(X)=А(N)»X»*<N)+А(N-1)*X*»(N-1)+...+A(1)»X+A(0). гВХОДНЫЕ ПАРАМЕТРЫ:(ВтЕ)-НАЧАЛЬНЫЙ АДРЕС МАССИВА КОЭФФИ-г«ИЕНТОЕ ПОЛИНОМА А(0),А(1)г...»А(М)гПРЕДСТАВЛЕННЫХ в гВИДЕ ДВОИЧНЫХ 3-БАЙГНЫХ ЧИСЕЛ в ДОПОЛНИТЕЛЬНОМ КОДЕ С гПЛАВАЮШЕИ ЗАПЯТОЙ»(H»L)-АДРЕС АРГУМЕНТА X »ПРЕДСТАВЛЕН-гНОГО в АНАЛОГИЧНОМ ВИДЕ,(А)-ПОКАЗАТЕЛЬ СТЕПЕНИ N ПОЛИ-гНОМА в ФОРМАТЕ «ЕЛОЧИСЛЕННОГО БЕЗЗНАКОВОГО ДВОИЧНОГО гЧИСЛА.РЕЗУЛЬТАТ в ВИДЕ 3-БАЙТНОГО ДВОИЧНОГО ЧИСЛА С гПЛАВАЮШЕЙ ЗАПЯТОЙ ПОМЕШАЕТСЯ Б ОБЛАСТЬ ПАМЯТИ "БУФЕР". гВНХОДНОЙ ПАРАМЕТР!СУ=1-ПРИЗНАК ПЕРЕПОЛНЕНИЯ ИЛИ АНТИ-гПЕРЕПОЛНЕНИЯ ПОРЯДКА РЕЗУЛЬТАТА.ИСПОЛЬЗУЕТСЯ ДОПОЛНИ-гТЕЛЬНО 3-БАйТНАЯ РАБОЧАЯ ОБЛАСТЬ ПАМЯТИ "БУФД". гйспользуютсл все гпчстисш-тттся (в,е) . (h.d г (а) , гГЛУБИНА СТЕКА-26.ИСП0ЛЬЗУЮТСЯ ПОДПРОГРАММЫ:«УДПЗЗ*» г»К0МЗ* » »0БНЗ*,»УДФ17*»*НМАН2*,»СДПЗЗ»1*0БМЗ*,*ДМАН2» » г *ПМАН2»,*ПМЗ*.«ДОПВ»,*Д0ПД* » «У32Б» » »У24А». гОЦЕНКА!ДЛИНА-81 БАЙТ (+475 БАЙТ ПОДПРОГРАММ) »ВРЕМЯ~НЕ гБОЛЕЕ (2P34+4P47»N) ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). г»***»»*»*»»»»»»»»»»»***»****»*»*»»»»***»*»****»»**»*»*» гСОХРАНЕНИЕ РЕГИСТРОВ 18Е0 D5 push II гСОХРАНЕНИЕ АДРЕСА КОЭФФИЦИЕНТОВ 18Е1 Е5 PUSH Н гСОХРАНЕНИЕ АДРЕСА АРГУМЕНТА
1931 1934 0000 jOBJIACTb РЕЗУЛЬТАТА (ЧАСТИЧНОЙ СУММЫ) БУФЕР: DS 3 !3 БАЙТА БУФД: DS 3 ?3 ЕАИТА Показатель степени полинома п перед работой программы записывают в аккумулятор, коэффициенты полинома ао, а\, Un в виде трехбайтных чисел с плавающей запятой размещают последовательно в области памяти, начальный адрес которой задается в регистровой паре (D, Е), а значение аргумента-в область памяти по адресу, указываемому в регистровой паре (И, L). В процессе работы программы дополнительно используются две трехбайтные области памяти БУФЕР и БУФД: первая используется для временного хранения вычисляемой частичной суммы полинома, вторая - для временного хранения очередной цифры. При переполнении или антипереполнении порядка результата в программе устанавливается признак переноса CY= 1. В этом случае результат ошибочен. Максимальное время работы программы рассчитано для наихудшего случая, когда все а, Ф 0. В качестве тестового примера выполним вычисление полинома Р{х) = ах-\-а2Х-\-а\х-\-ао = х + Зд: - - 2х-\-\. В табл. 4.3 приведены соответствующие тестовые данные, а на рис. 4.4 - график полинома.
Рис. 4.4. График полинома 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.0194 |
|