|
Главная -> Появление первого микропроцессора 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 14F4 El 14F5 CI 14F6 C9 14F7 0000 PDF POP RET гВОССТАНОВЛЕНИЕ АДРЕСА 2 гВОССТАНОВЛЕНИЕ АДРЕСА 1 гОКЛАСТЬ ПАМЯТИ ПРОМЕЖУТОЧНОГО РЕЗУЛЬТАТА БУФЕР: DB 3 гЗ БАЙТА Максимальное десятичное число, представленное в формате двоичного числа с плавающей запятой, равно Л,0 = 0,92-10 (см. § 2.1). Поэтому программа ППЗЮ прежде всего проверяет модуль десятичного порядка и переходит к дальнейшим преобразованиям в случае, если miosis (тем самым максимальное десятичное число ограничивается величиной Л10тах= 10 • 0,9999), иначе фиксируется переполнение разрядной сетки и устанавливается признак CY= 1. На следующем шаге проверяется значение десятичной мантиссы, и в случае равенства ее нулю выполнение программы заканчивается и результат преобразования обнуляется с помощью подпрограммы ОБНЗ. Если значение мантиссы Люф не равно нулю, осуществляется перевод ее в двоичную систему счисления посредством подпрограммы ПФЮН: 0F20 ОЕСО 0В20 0F20 CICOOE 0F23 7С 0F24 17 0F25 ЗЕ40 0F27 D8 0F28 Е5 0F29 ЕВ ORG 0F20H ПФЮ BET ОЕСОН Д216 SET 0В20Н пфюн: гПОДПРОГРАМНА ПРЕОБРАЗОВАНИЯ ДВОИЧНО-ДЕСЯТИЧНОГО ЕЕЗЗНА- гкового ЧИСЛА с фиксироважои перед старшим разрядом за- гПЯТОИ ФОРМАТА <0jP1P2P3P4) В ДВОИЧНОЕ ЧИСЛО С ПЛАВАВШЕЙ гЗАПЯТОИ ФОРМАТА Шг 16) = (ПОРгМАН)тГДЕ ЕАЙТ ПОРЯДКА СО-гДЕРЖИТ ЦЕЛОЧИСЛЕННЫЙ ДВОИЧНЫЙ ПОРЯДОК СО СМЕШЕНИЕМ +40И гА ДВА еаита МАНТИССЬЬДРОЕНОЕ НОРМАЛИЗОВАННОЕ БЕЗЗНАКО- гвоЕ ЧИСЛО. гВХОДНОИ ПАРАМЕТР:(В»С)-ДЕСЯТИЧНАЯ МАНТИССА.ВЫХОДНЫЕ ПА-гРАМЕТРЫ: (HjL.)-ДВОИЧНАЯ MAHTHCCAt (А)-ДВОИЧНЫЙ ПОРЯДОК. гИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫтГЛУБИНА СТЕКА-8.ИСП0ЛЬЗУЮТСЯ г ПОДПРОГРАММЫ: *ПЮ8»г кП 1016*г*ПФ10* f*ДОПВ». *Д216*. гОЦЕНКА:ЛЛИНА- 35 еайт (+113 БАЙТ ПОДПРОГРАММ)jВРЕМЯ-НЕ гЕОЛЕЕ 4352 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). г*м*х***кх«****х*»*»х«*х*«*»*к****«х»»х*»»*к******к***»» гДВОИЧНОЕ ПРЕОБРАЗОВАНИЕ ЧИСЛА 0»Р1Р2РЗР4 CALL ПФЮ ? (HrL)-ЧАСТНОЕт (DfE>-ОСТАТОК гПРОВЕРКА;ДВОИЧНАЯ МАНТИССА НОРМАЛИЗОВАНА ? MOV А»Н г(А)-СТБ МАНТИССЫ MVI Ат40Н г(А)-СМЕШЕННЫЙ НУЛЕВОЙ ПОРЯДОК RC гЕСЛИ ЧИСЛО НОРМАЛИЗОВАНО гДОПОЛНИТЕЛЬНОЕ ДЕЛЕНИЕ ОСТАТКА НА Юхх4=2710Н PUSH Н гСОХРАНЕНИЕ ЧАСТНОГО 1 XCHG г(HfL)-ОСТАТОК (ДЕЛИМОЕ) 0f2a 011027 0f2d сп200в 0f30 f:i 0F31 0640 0f33 29 0F34 ев 0F35 29 0F36 ев 0F37 n23B0F 0F3A 23 0F3B 05 0F3C 7с 0F3D 17 0F3E n2330F 0f41 78 0F42 С9 0000 LXI Вг2710Н CALL Й216 POP Н ;НОРМАЛИЗАЦИЯ МАНТИССЫ! МУ1 В.40Н ЦИКЛ; BAD Н XCHG ПАВ Н XCHG JNC ПЕР INX Н ПЕР: DCP В ;ПРОВЕРКА КОНЦА ЦИКЛА MOV АгН JNC ЦИКЛ мои АгВ RET END ?(в1с)-яелитель=10000 ;(DrE)-частное 2 ;<h>L)-частное 1 сдвиг влево частного 1»частного 2 ;(в)-смешенный нулевой порядок гУЧЕТ ПЕРЕНОСА ;УМЕНЬШЕНИЕ ПОРЯДКА !(а)-сте мантиссы ; зацикливание ;(а>-ПОРЯДОК Программа ПФ10Н преобразует четырехразрядную десятичную мантиссу в двоичную шестнадцатиразрядную мантиссу с нулевым смещенным двоичным порядком. Если двоичная мантисса оказывается ненормализованной, программа вьшолняет ее нормализацию влево (предварительно вычислив дополнительные разряды денормализованной мантиссы) и соответствующую коррекцию двоичного порядка. В результате формируется число Л2=2"-Л2ф, которое программа ППЗЮ записывает в память, а затем переходит к двоичному преобразованию десятичной степени Ю""°. Вычисление двоичного значения десятичной степени выполняет программа ПСЮ: 13D0 05D0 ОЕОО ORG 13D0H У24А SET 5D0H П108 SET ОЕООН ПСЮ: гПОЙПРОГРАММА ПРЕОБРАЗОВАНИЯ ДЕСЯТИЧНОЙ СТЕПЕНИ lOxxN MN<58) В ДВОИЧНОЕ ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ ФОРМАТА Я8»16) = (П0Р»МАН).ГДЕ БАЙТ ПОРЯДКА СОДЕРЖИТ ЦЕЛОЧИСЛЕН-;ННй ДВОИЧНЫЙ ПОРЯДОК со СМЕЩЕНИЕМ +40HfA 2 БАЙТА МАН-ЯИССЫ-СТБ.МЛБ-ЛВОИЧНОЕ ДРОБНОЕ НОРМАЛИЗОВАННОЕ ЧИСЛО В ;ПРЯМОМ КОДЕ. ?ВХОДНОЙ ПАРАМЕТР! (О-ПРЯМОЙ ДВОИЧНО-ДЕСЯТИЧНЫЙ КОЙ ПО-гКАЗАТЕЛЯ СТЕПЕНИ М.ВЫХОДНЫЕ ПАРАМЕТРЫ:(С)-ДВОИЧНЫЙ ПО-!РЯйОК?(Н>Е)-ДБОИЧНАЯ МАНТИССА.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ ;ГЛУБИНА СТЕКА-4.ИСПОЛЬЗУЮТСЯ ПОДПРОГРАММЫ:ху24АХ,хп108х гОЦЕНКА:ДЛИНА-125 БАЙТ (+32 БАЙТА ПОДПРОГРАММ).ВРЕМЯ-НЕ 5Б0ЛЕЕ 5520 ТАКТОВ ПРИ N=18 (С УЧЕТОМ ПОДПРОГРАММ). sxxxxxxxxkxxxkxxxxxxxxxxxxxxxxxxxxxkxxxxxxxxxxxxxxxxxxxx 13110 79 13D1 FE05 13D3 F20714 13D6 В7 13D7 C2F013 13DA 210080 13DD 0Е41 13DF С9 13Е0 FE01 13Е2 С2ЕВ13 13Е5 2100А0 13Е8 0Е44 13ЕА С9 13ЕВ FE02 13ED C2F613 13F0 Э100С8 13F3 0Е47 13F5 С9 »13F6 FE03 13F8 С20114 13FB ЭЮОЕА 13FE 0Е4А 1400 С9 1401 Э1409С 1404 0Е4Е 1406 С9 ;ПР0ВЕРКАгП0КАЗАТЕ.ЛЬ СТЕПЕНИ N>4 ? MOV А.С CPI 05 JF ПЕР1 ;ЕСЛИ N>4 гПРОВЕРКА:ПОКАЗАТЕЛЬ СТЕПЕНИ N=0 ? ORA А JNZ ПЕР2 ?ЕСЛИ N)0 ?М=0.3АНЕСЕНИЕ В РЕЗУЛЬТАТ КОНСТАНТЫ 1=(41Н»8000Н) LXI НтООООН ?МАНТИССА=0»50000 HVI С.41Н ;П0РЯД0К=1 RET ;ПРОВЕРКА:ПОКАЗАТЕЛЬ СТЕПЕНИ N=1 ? ПЕР2: CPI 01 ли ПЕРЗ ;ЕСЛИ N>1 ?N=1.ЗАНЕСЕНИЕ В РЕЗУЛЬТАТ КОНСТАНТЫ 10=(44Н»АОООН) LXI НтОАОООН 5НАНТИССА=0.62500 MVI С-44Н ;П0РЯЙ0К=4 гПРОВЕРКА:ПОКАЗАТЕЛЬ СТЕПЕНИ N=2 ? ПЕРЗ: CPI 2 JNZ ПЕР4 ;ЕСЛИ N)2 ;N=2.ЗАНЕСЕНИЕ В РЕЗУЛЬТАТ КОНСТАНТЫ 100=<47Н»С80ОН> LXI НтОС800Н ;МАНТИССА=0»78125 MVI Cf47H гП0РЯД0К=7 гПРОВЕРКА:ПОКАЗАТЕЛЬ СТЕПЕНИ N=3 ? ПЕР4: CPI 3 JNZ ПЕР5 ;ЕСЛИ N=4 гN=3.ЗАНЕСЕНИЕ В РЕЗУЛЬТАТ КОНСТАНТЫ 1000=MAHrFAOOH) LXI HtOFAOOH !МАНТИССА=0»97656 MVI Cj4AH ?П0РЯД0К=10 fN=4.3AHECEHHE В РЕЗУЛЬТАТ КОНСТАНТЫ 10000=(4ЕНг9С40Н) ПЕРЗ: LXI H.9C40H ;МАНТИССА=0»61035 MVI С»4ЕН :П0РЯД0К=14 JПРЕОБРАЗОВАНИЕ ПОКАЗАТЕЛЯ СТЕПЕНИ N В ДВОИЧНЫЙ КОЛ» гПОДГОТОВКА регистров к циклу ВОЗВЕДЕНИЯ в СТЕПЕНЬ
;цикл возведения в степень умножением на 10 или 100 141d с5 цикл1: push в 141е cdd005 call у24а j(a.h.l)=пр0изведение 1421 с1 pop в 1422 17 цикл2: ral 1423 da2d14 jc пер8 ."если число нормализовано 1426 IF rar 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.0164 |
|