![]() |
Главная -> Появление первого микропроцессора 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 гЛЯЕМОЙ в АНАЛОГИЧНОМ ВИДЕ.ВЫХОЛНОИ ПАРАМЕТР:СУ=1-ПРИЗ-SHAK ПЕРЕПОЛНЕНИЯ ИЛИ АНТИПЕРЕПОЛНЕНИЯ ПОРЯДКА РЕЗУЛЬТА-ЯА.ИСПОЛЬЗУЕТСЯ ДОПОЛНИТЕЛЬНАЯ РАБОЧАЯ ОБЛАСТЬ ПАМЯТИ ГКОЭФ" ОБЬЕМОМ 8*3=24 БАЙТ ДЛЯ ХРАНЕНИЯ КОЭФФИЦИЕНТОВ гСТЕПЕННОГО РЯДА.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ,СОХРАНЯЮТСЯ ! (H.L) f(DrE) .ГЛУБИНА СТЕКА-ЗО.ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ! ? «ПОЛИН*.«УДПЗЗ*.«КОМЗ*.«ОБНЗ*,«УДФ17*,«НМАН2*.«СДПЗЗ«. f «0БМЗ«.«ДМАН2*.*ПМАН2«.*ПМЗ«,«ДОПЕ*,«ДОПД«.«У32Е«.«У24« гОЦЕНКА:ДЛИНА-19 ЕАЙТ (+556 ЕАЙТ ПОДПРОГРАММ) ,БРЕМЯ-НЕ гЕОЛЕЕ 37770 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). ;««««**««««»««««»*«««»«»*««««««««*««««««*«»»««««*«««««»*
Программа вычисляет синус посредством подпрограммы ПОЛИН, поэтому в ней фиксированы значения и младших нулевых коэ(фициентов полинома Тейлора. Для нахождения синуса при значениях аргумента вне диапазона [ - п/4, л/4] полезны формулы приведения: sinx = cos (л / 2 - jc); sinx = sin (л - х) = - sin (л -- х) = = - sin(2n - х); sin х = sin(jt; 4- k • 2л). Функция у = cos л: разлагается в ряд Тейлора: cosx=l----[--g-4--g--... (4.11) с радиусом сходимости R - оо. Для обеспечения той же точности вычислений и в том же диапазоне, что и для функций синуса, достаточно взять первые 4 члена ряда (4 1\) с коэффициентами: 1; -1/2! = -0,5; 1/4! = = 0,4167-10- и -1/6! =-0,1389-10-2. Этот метод использует программа вычисления косинуса КОС: 1а70 18е0 1931 00е8 OftB 1А70Н ПОЛИН SET 18Е0Н ВУФЕР SET 1931Н ПМЗ SET 0В8Н КОС! {«»«»*«*« »Н(«ККК)И(КК»««»*)(«»»*»*КХ«Х»**«»**» ««к»** {ПОДПРОГРАММА ВЫЧИСЛЕНИЯ КОСИНУСА ОСТРОГО УГЛА У=С05 X, {ГДЕ (-"ПИ"/« <= X <= +"ПИ"/4). {ВХОДНЫЕ ПАРАМЕТРЫ!(Н»и)-АДРЕС АРГУМЕНТА,ПРЕДСТАВЛЕННОГО {б ФОРМЕ 3-БАйТНОГО ДВОИЧНОГО ЧИСЛА Б ДОПОЛНИТЕЛЬНОМ {КОДЕ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ» (D,E)-АДРЕС ФУНКЦИИ»ПРЕДСТАВЛЯ-{ЕМОЙ б АНАЛОГИЧНОМ ВИДЕ.ВЫХОДНОЙ ПАРАМЕТР:СУ=1-ПРИЗНАК {ПЕРЕПОЛНЕНИЯ ИЛИ АНТИПЕРЕПОЛНЕНИЯ ПОРЯДКА РЕЗУЛЬТАТА. {ИСПОЛЬЗУЕТСЯ ДОПОЛНИТЕЛЬНАЯ РАБОЧАЯ ОБЛАСТЬ ПАМЯТИ {"КОЭФ" ОБЪЕМОМ 7хЗ=--21 BAIW ДЛЯ ХРАНЕНИЯ КОЭФФИЦИЕНТОВ {СТЕПЕННОГО РАДА.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРН»СОХРАНЯЮТСЯ ;(H»L)»(D»E).ГЛУБИНА СТЕКА-30.ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ: {«ПОЛИН*»«УДПЗЗ*»«КОМЗ*»*0БНЗ*»*УДФ17*» «НМАН2*.*СДПЗЗ*» {*ОЕМЗ*,*ДМАН2*»ХПМАН2*»*ПМЗ*»*ДОПБ*»*ДОПЯ*»*У32Б*,*У24А {0ЦЕНКА!ДЛИНА-19 БАЙТ (+556 БАЙТ ПОДПРОГРАММ),БРЕМЯ-НЕ {БОЛЕЕ 32820 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). {**»»***************««*************«******«************* {ПОДГОТОВКА РЕГИСТРОВ К ВЫЧИСЛЕНИЮ ПОЛИНОМА
1А92 00 1А93 0000 1А95 В7 1А96 49F2 0000 DB DU DB DU END ООН JA(5)=0 OOOOH 0Б7Н ?A(6)= 0F249H -0,1389»10»*(-2)=B7 49 F2H Для нахождения функции у = cosx при значениях аргумента вне диапазона [-я/4, л/4] можно использовать формулы приведения cosx= 5т(л/2 - х); cosx= -cos(n -х) = -cos(n-{-х) =соз(2л -х); созл; = = cos(x -f k • 2л). Тестовые данные для программ СИН и КОС приведены в табл. 4.7 и 4.8. Табл. 4.7. Меры углов
Табл. 4.8. Тестовые данные t/=sinx, t/=cosx
45 20 5 -5 -20 -45 0,7071.10° 0,3420. 10° 0,8716- 10- 0,8716- 10- - 0,3420- 10° 0,7071 . 10° 40В504 3FAF22 3DB280 BD4D80 BF50DE C04AFC 0,7071 0,9397 0,9962 0,9962 0,9397 0,7071 •10° .10° •10° .10° .10° .10° 40В505 40F08F 40FF07 40FF07 40F08F 40В505 Функция y = tgx, как и функции синуса, косинуса, может быть представлена рядом Тейлора. Однако этот ряд сходится гораздо медленнее, чем ряды (4.10), (4.11), и, следовательно, требует много членов для обеспечения точности и необходимого диапазона аргумента. Для вычисления функций y = tgx и y - ctgx воспользуемся их определением посредством функции синуса и косинуса: tgx = sinx/cosx, ctgx = cosx/sinx. Программы ТАН и КОТАН вычисляют функции тангенса и котангенса на основе этих определений: 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.02 |
|