|
Главная -> Появление первого микропроцессора 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 1427 29 1428 17 1429 05 142А С32214 142D IF 142Е 57 142F 5С 1430 78 1431 С608 1433 47 1434 79 1435 В7 1436 СА4514 1439 0D 143А ЗЕОА 143С CA1D14 143F 0D 1440 ЗЕ64 1442 C31D14 1445 48 1446 45 1447 6В 1448 62 1449 78 144А 17 144В ВО 144С 23 144D С9 0000 ;Н0РМАЛИЗАЦИЯ:СЙВИГ ПРОИЗВЕДЕНИЯ ВЛЕВО BAD Н ?СЛВИГ (HrL) RAL ;СДВИГ (А) DCR В ;УМЕНЫ11ЕНИЕ ПОРЯДКА JMP ЦИКЛ2 гЗАЦИКЛИВАНИЕ 2 гПРОВЕРКА ОКОНЧАНИЯ ЦИКЛА 1 ПЕР8: RAR MOV MOV MOV ABI MOV MOV ORA JZ ПЕР9 ;(DrE>-CTBrCPE ПРОИЗВЕДЕНИЯ гУВЕЛИЧЕНИЕ ПОРЯДКА НА 8 ?если цикл окончен ПОДГОТОВКА РЕГИСТРОВ К ПРОДОЛЖЕНИЮ ЦИКЛА 1 DCR С ;УМЕНЬШЕНИЕ ПОКАЗАТЕЛЯ N HVI АгОАН г(А)-МН0ЖИТЕ.ЛЬ=10 JZ ЦИКЛ1 ;ЗАЦИКЛИВАНИЕ 1 DCR С SУМЕНЬШЕНИЕ ПОКАЗАТЕЛЯ N MVI Аг64Н 5(А>-МН0ЖИТЕЛЬ=100 JMP ЦИКЛ1 5 ЗАЦИКЛИВАНИЕ 1 ;ЗАПИСЬ РЕЗУЛЬТАТА В РЕГИСТРЫ ПЕР9: MOV СгВ ; (С)-СМЕШЕННЫЙ ПОРЯДОК MOV BrL :(В)-МЛЕ ПРОИЗВЕДЕНИЯ MOV LrE ;(L)-CPE ПРОИЗВЕДЕНИЯ MOV HrD ;(Н>,-СТЕ ПРОИЗВЕДЕНИЯ ;ОКРУГЛЕНИЕ РЕЗУЛЬТАТА ПО МЛЕ ПРОИЗВЕДЕНИЯ MOV RAL RNC INX RET END ArB ;(а)-МЛБ произведения гЕСЛИ старший РАЗРЯД=0 Программа преобразует величину 10""° в двоичное число с плавающей запятой вида АЧ = Г - Лгф. Преобразование выполняется, во-первых, переводом двоично-десятичного порядка /7210 в двоичный посредством подпрограммы П108 и, во-вторых, последовательным умножением двоичного значения исходной десятичной степени на двоичное значение десятичного основания 10о=0Лб или его квадрата 10fo= 100io=64ic посредством подпрограммы У24А. С целью минимизации общего количества умножений и, следовательно, уменьшения времени работы программы ПСЮ использован табличный способ преобразования степени для mio<c5. При m>4 двоичное представление степени 10io=2710i6 используется в качестве исходного в цикле вычисления более высокой степени. Ускорение вычисления степени достигается и за счет умножения промежуточной степени на квадрат основания. В процессе возведения в степень выполняются нормали- зация двоичной мантиссы и формирование соответствующего смещенного двоичного порядка. Программа ПС 10 требует больших затрат времени на преобразование степени. Ее целесообразно использовать один раз для предварительного расчета двоичных эквивалентов десятичных степеней, а в программе ППЗЮ применять уже готовые табличные данные. Такой табличный выбор производит подпрограмма ПСЮА: 1450 ОЕОО 1450 79 1451 СПОООЕ 1454 4F 1455 0600 1457 216414 145А 09 1458 09 145С 09 145D 145Е 145F 1460 1461 1462 1463 1464 1468 146А 146Е 1470 1474 1476 147А 147С 1480 ORG 1450Н П108 SET ОЕООН ПСЮА: гПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ДЕСЯТИЧНОЙ СТЕПЕНИ lOxxN ;(М<19) В ДВОИЧНОЕ ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ ФОРМАТА !(8.16)=(П0Р»МАН),ГЛЕ БАЙТ ПОРЯДКА СОДЕРЖИТ «ЕЛОЧИСЛЕН-;НЫИ двоичный ПОРЯДОК СО СМЕШЕНИЕМ +40НтА 2 БАЙТА МАН-ЯЙССЫ-ДВОИЧНОЕ ДРОБНОЕ НОРМАЛИЗОВАННОЕ ЧИСЛО В ПРЯНОМ ;кодЕ. гВХОДНОИ ПАРАМЕТР!(С)-ПРЯМОЙ ДВОИЧНО-ДЕСЯТИЧНЫИ КОД ПОКА" гЗАТЕЛЯ СТЕПЕНИ М.ВЫХОДНЫЕ ПАРАМЕТРЫ:(С)-ДВОИЧНЫЙ ПОРЯ-!ДОКт (H.L.)-ДВОИЧНАЯ МАНТИССА.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ. ?ГЛУБИНА СТЕКА-г.ИСПОЛЬЗУЕТСЯ ПОДПРОГРАММА!ХП108х. !0ИЕНКА:ДЛИНА-20 БАЙТ (+14 БАЙТ ПОДПРОГРАММЫ.+57 БАЙТ .-ТАБЛИЦЫ) ,ВРЕМЯ-183 ТАКТА. цххххххххххххххххххххххххххххххххххххххххххххххххххххххх ;ПРЕОБРАЗОВАНИЕ ПОКАЗАТЕЛЯ СТЕПЕНИ N В ДВОИЧНЫЙ КОД MOV А.С CALL. П108 f (А)-РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ MOV С.А ;АЛРЕСАЦИЯ РЕЗУЛЬТАТА В ТАБЛИЦЕ MVI LXI BAD DAD DAD Н.ТАБЛ ;(Н.Е)-АДРЕС ПОРЯДКА гЗАНЕСЕНИЕ РЕЗУЛЬТАТА В РЕГИСТРЫ 4Е 23 56 23 5Е ЕВ С9 41800044 АООО 47С8004А FA0O 4Е9С4051 С350 54F42458 9897 5ВВЕВС5Е ЕЕ6В MOV INX HOV INX MOV XCHG RET ТАБЛ: DB CM H ;(С)-ПОРЯЛОК J(D>-CTB МАНТИССЫ ;(Е)-МЛБ МАНТИССЫ ;(Н.Е)-СТБ.МЛБ МАНТИССЫ 41Н.80Н.00Н.44Н.0А0Н.00Н 47Н.0С8Н.ООН.4АН.OFАН.ООН 4Е.Н,9СН.40Н.51Н.0СЗН.50Н 54H.0F4H.24H.58H.93H.97H 5ВН.ОВЕ.Н.ОВСН.5ЕН.0ЕЕН.6ВН
62H J 95H. 03H t 65H J OB AH . 43H 68И t 0E8H г 0D3H г 6CH,91H f 84H 6FHf 0B5H f OESHf 72Hf 0E3H f SDH 76Hf8E.Hf1AHf79HfOB1HfOA1H 7CHfODE.Hf09H В массиве ТАБЛ программы записаны двоичные эквиваленты (т", Ai%) десятичных степеней 10°, .... 10*. После вычисления чисел Az и А" программа ППЗЮ проверяет знак Sn десятичного показателя степени и в зависимости от знака выполняет либо умножение Лг = = Л2-Л2 (знак «+»), либо деление Л2 = Л2:Л2 (знак «-») промежуточных чисел, формируя окончательный результат преобразования. Тестовые данные для программы ППЗЮ приведены в табл. 3.3. Табл. 3.3. Числа с плавающей запятой AmAi
3.7. преобразования двоичных чисел с плавающей запятой в десятичные числа с плавающей запятой Программа ПДП32 выполняет обратное преобразование по отношению к программе ППЗЮ, т. е. преобразует двоичное число с плавающей запятой (но уже знаковое число, представленное в дополнительном коде) Л2 = -+-2"-Л2ф, в эквивалентное двоично-десятичное число с плавающей запятой Лю = ± Ю"" • Люф (рис. 3.2): 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.0581 |
|