|
Главная -> Появление первого микропроцессора 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 аналогичного перевода для целых чисел, решение данной задачи можно упростить, используя готовые средства. Переход от целого числа к дробному осуществляется путем деления целого числа на некоторую степень. Поэтому преобразование десятичной дроби в двоичную можно представить как преобразование целого десятичного числа, изображенного в виде десятичной дроби, в эквивалентное целое двоичное число и деление последнего на соответствующую десятичную степень. Этот алгоритм реализуется программой ПФ10. Программа ПФЮ преобразует четырехразрядную десятичную дробь [0,0000; 0,9999] в эквивалентную двухбайтную двоичную дробь Л2е[0000; , FFFFH]: ОЕСО ОЕЮ 0Б20 ОЕСО СГИООЕ ОЕСЗ 011027 0ЕС6 СГ1200Б 0ЕС9 ЕБ OECft С9 0000 ORG ОЕСОН П1016 SET 0Е10Н Д216 SET 0Б20Н ПФЮ: к*»»»»»»»»»»»»» !ПОДПРОГРАММА ПРЕОБРАЗОБАНИЯ ДВОИЧНО-ДЕСЯТИЧНОГО БЕЗЗНА-SKOBOro ЧИСЛА С ФИКСИРОВАННОЙ ПЕРЕД СТАРШИМ РАЗРЯДОМ ЗА-SПЯТОЙ ФОРМАТА 4*4 Б ДВОИЧНОЕ ЧИСЛО С ФИКСИРОВАННОЙ ЗА-;ПЯТОЙ ФОРМАТА 16. (ВХОДНОЙ ПАРАМЕТР:(ВгС)-ДВОИЧНО-ДЕСЯТИЧНОЕ ЧИСЛО (0.Р1Р2 SP3P4).ВЫХОДНОЙ ПАРАМЕТР:(HtL)-ЭКВИВАЛЕНТНОЕ ДВОИЧНОЕ (ЧИСЛО.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ.ГЛУБИНА СТЕКА-б.ИСПОЛЬ-(ЗУЮТСЯ ПОДПРОГРАММЫ!»П108».»П1016».»Д216»»»ДОПВ». (ОиЕНКА:ДЛИНА-11 ЕАЙТ (+102 БАЙТ ПОДПРОГРАММ)гВРЕМЯ-НЕ (БОЛЕЕ 2224 ТАКТОВ (С УЧЕТОМ ПОДПРОГРАММ). («К«К«К«К«««««««««««»КХХ«Х««)(««Х«ХХ«К««КК«««««КХ««Х««««« (ДВОИЧНОЕ ПРЕОБРАЗОВАНИЕ ЧИСЛА (0.Р1Р2РЗР4)»10»»4 CALL П1016 ((HrD-OE ДВОИЧНОЕ ЧИСЛО (ДЕЛЕНИЕ двоичного «ЕЛОГО ЧИСЛА НА 10»*4=27ЮН LXI В»2710Н (ЗАГРУЗКА КОНСТАНТЫ 10000 CALL Д216 ((ВтЕ)-ЧАСТНОЕ XCHG ((HtL)-ЧАСТНОЕт(ВтЕ)-ОСТАТОК С помощью подпрограммы П1016 эта программа преобразует целое десятичное число в двоичное, а затем делит последнее на степень 10o=2710i6. В соответствии с формулой (3.7) точность преобразования достаточна для сохранения точности исходной десятичной дроби. Тестовые данные для программы ПФЮ приведены в табл. 3.1. Табл. 3.1. Дробные числа Ло-»-Л1
3.5. преобразования дробных двоичных чисел в десятичные Программа ПФ16 преобразует двухбайтную двоичную дробь Лг е [,0000; , FFFFH] в эквивалентную пятиразрядную десятичную дробь A\q\Q), 00000; 0,99999] по формуле (3.5): ОЕВО 0F00 ORG оевон УФ«10 SET ОЕООН ;»»»»»»»»»»»» »»»»»»»»»»»»»»»)Ж»)(»«»«»««»»»)(»н»ж»и»»»)(»к« ;ПОЙПРОГРАММй ПРЕОБРАЗОВАНИЯ ДВОИЧНОГО БЕЗЗНАКОВОГО ЧИС-;ЛА с ФИКСИРОВАННОЙ ПЕРЕД СТАРШИМ РАЗРЯДОМ ЗАПЯТОЙ ФОР-SMATA 16 В ДВОИЧНО-ДЕСЯТИЧНОЕ ЧИСЛО С ФИКСИРОВАННОЙ ЗА-гПЯТОй <.Р1Р2РЗР4Р5> ФОРМАТА 5*4, ;ВХОДНОЙ ПАРАМЕТР:(ВгС)-ДВОИЧНОЕ ЧИСЛО.ВЫХОДНЫЕ ПАРАМЕТ-;РЫ!(АтН»и)-ЭКВИВАЛЕНТНОЕ ДВОИЧНО-ДЕСЯТИЧНОЕ ЧИСЛО.ИС-гПОЛЬЗУЮТСЯ все регистры.глубина СТЕКА-10.ИСПОЛЬЗУЮТСЯ ? ПОДПРОГРАММЫ:»УФ«10». ;оценка:ДЛИНА-38 БАЙТ (+30 БАЙТ ПОДПРОГРАММ)гБРЕМЯ-НЕ ?БОЛЕЕ 1099 ТАКТОВ. fПОСЛЕДОВАТЕЛЬНОЕ УМНОЖЕНИЕ ИСХОДНОГО ЧИСЛА НА 10
S(H)-ЦИФРА РЗ ЯЮССТАНОЕЛЕНИЕ ЦИФРЫ Р2 ;<H»L)-ЦИФРЫ Р2РЗР4Р5 гВОССТАНОВЛЕНИЕ ЦИФРЫ Р1 г(А)-ЦИФРА Р1 Программа выполняет последовательное умножение ИСХОДНОЙ двоичной дроби на основание десятичной системы и выделение очередной двоично-десятичной цифры с помощью подпрограммы УЦФЮ: OF00 ORG OFOOH УФШО: г »»»«»»»»»»)(»»»« »»»»»»»»»»»)()(»««»«)(»)(»»«« ;ПОДПРОГРАММА УМНОЖЕНИЯ ДВОИЧНОГО БЕЗЗНАКОВОГО ЧИСЛА С гФИКСИРОВАННОЙ ПЕРЕД СТАРШИМ РАЗРЯДОМ ЗАПЯТОЙ ФОРМАТА 16 гНА ОСНОВАНИЕ ДЕСЯТИЧНОЙ СИСТЕМЫ: 10. гВХОДНОЙ ПАРАМЕТР:(В.С)-ЧИСЛО С ФЗ.ВЫХОДНЫЕ ПАРАМЕТРЫ: г(А)-ЦЕЛАЯ ЧАСТЬ ПРОИЗВЕДЕНИЯ (ДВОИЧНО-ДЕСЯТИЧНАЯ ЦИФРА) ; (ВгС)-ДРОБНАЯ ЧАСТЬ ПР0ИЗЕЕДЕНИЯ„ИСП0ЛЬЗУиТСЯ ВСЕ РЕ- ггистры. гОЦЕНКА:ДЛИНА-30 БАЙТ-БРЕМЯ-172 ТАКТА. г»»»»»»»»»х»»»*»»»»»«-»»»»»»-х»»»»»»к»»»»»»»»»»»«*«»»*»»»» гПОДГОТОВКА РЕГИСТРОВ
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.0127 |
|