|
Главная -> Появление первого микропроцессора 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
Программа обращается к подпрограмме беззнакового деления Д216, известным вспомогательным подпрограммам получения дополнительного кода ДОПВ, ДОПД, ДОПН и новым вспомогательным подпрограммам правого одноразрядного сдвига числа соответственно в регистровых парах (В, С), (D.E) и (Н, L): 0068 ORG 68Н ПОСВ: г»*»**»***»*»»»»»»»»»»»*»*****»»*»»*»»*»********»**»»»*» гПОДПРОГРАММА ПРАВОГО ОДНОРАЗРЯДНОГО СДВИГА ЧИСЛА В РЕ-гГИСТРОВОЙ ПАРЕ (В,С).ВДВИГАЕТСЯ БИТ СУ=0.ЕСЛИ ВХОД В гПРОГРАММУ "HOCB-fH бит СУ=0 или 1»ЕСЛИ ВХОД -посв-н". гВХОДНОЙ ПАРАМЕТР:(В»о-ИСХОДНОЕ ЧИСЛО.ВЫХОДНОЙ ПАРА- ;«етр!(ВрС)-число после сдвига.используется регистр а. гоценка:длина-8 байт,время-42 такта. SCY=0
ПОСД! ;ПОДПРОГРАММА ПРАВОГО ОДНОРАЗРЯДНОГО СДВИГА ЧИСЛА В РЕ-;ГИСТРОВОЙ ПАРЕ (ВгЕ) .ВДВИГАЕТСЯ БИТ СУ=ОгЕСЛИ ВХОД В гПРОГРАММУ "ПОСД"»И бит CY=0 ИЛИ 1гЕСЛИ вход "ПОСД+1". ?ВХОДНО« ПАРАМЕТР:(ВгЕ)-ИСХОДНОЕ ЧИСЛО.ВЫХОЙНОЙ ПАРА-;МЕТР;(ВгЕ)-ЧИСЛО ПОСЛЕ СДВИГА.ИСПОЛЬЗУЁТСЯ РЕГИСТР А. ?ОЦЕНКА.ДЛИНА ЕАЙТгВРЕМЯ-42 ТАКТА. гсу=0
ПОСН: 5 ПОДПРОГРАММА ПРАВОГО ОДНОРАЗРЯДНОГО СДВИГА ЧИСЛА В РЕ-:ГИСТРОВОЙ ПАРЕ (HrL).ВДВИГАЕТСЯ БИТ СУ=ОгЕСЛИ ВХОД В гПОДПРОГРАММУ "ПОСН",И БИТ СУ=0 или 1гЕСЛИ вход "ПОСН+1" ;ВХОДНОЙ ПАРАМЕТР:(HrL)-ИСХОДНОЕ ЧИСЛО.БЫХОДНОЙ ПАРА-;МЕТР:(НгЕ)-ЧИСЛО ПОСЛЕ СДВИГА.ИСПОЛЬЗУЁТСЯ РЕГИСТР А. !0ЦЕНКА:ДЛИНА-8 БАЙТгВРЕМЯ-42 ТАКТА. ;CY=o
Эти подпрограммы неоднократно применяются в дальнейшем при разработке новых программ. В контексте данной программы подпрограммы ПОСД и ПОСН используются для сдвига вправо соответственно частного и остатка с целью внесения в формат их знаков, поскольку деление целых беззнаковых чисел дает беззнаковые дробные частное и остаток. После сдвига прямых кодов этих чисел вправо и освобождения (обнуления) крайнего ле- 4-1926 вого разряда знак минус вводится, если необходимо, дополнением частного или остатка. Тестовые данные программы приведены в табл. 1.22. Табл. 1.22. Тесты деления формата 16:16=(16, 16) (целые двоичные числа в дополнительном коде) Представление чисел шсстЕтадцатеричЕЮе десятичное FF00:FE00=(4000, 0000) (-256):(-512)=(+0,5; 0) F000:2000=(C000, 0000) (-4096):(Н-8192)=(-0,5; 0) 5555:АААА=(8002. ООО!) (+21845):(-21846)=(-0,99999;+ Н-0,00001) 7FFF:8000=(8001. 0000) (+32767):(-32768) = ( - 0,99999; 0) 4000:5000=(6666, 2000) (+16384):(+20480)=(+0,75; + -1-0.25) 1.5.4. ДРОБНЫЕ ЧИСЛА СО ЗНАКОМ 1.5.4.1. Деление дробных чисел Деление дробных чисел Z:Y в дополнительных кодах можно выполнять теми же методами, что и деление целых чисел со знаком, т. е. преобразованием в прямые коды, делением беззнаковых чисел и коррекцией результата с учетом знаков делимых чисел. Далее будет приведена программа ДДФ17, реализующая такой способ деления. Вместе с тем деление дробных чисел в дополнительных кодах можно выполнять и непосредственно, без предварительного преобразования их в прямые коды, а на основе модифицированного алгоритма деления без восстановления остатка [61]: r2Qi ,-y, если 5(<Э, ,)=5(У); l2Q, , + y, если S(Q, OS(y); <\, если 5(<Э,) = 5(У); to, если S{Qi)фS{Y), где 5(Qi), 5(У) - знаки соответственно остатка Q; и делителя У; Qo = Z и 5(Qo) = S(Z). Иными словами, если делимое Z и делитель У представлены в дополнительных кодах, то на очередном i-м цикле деления делитель вычитается из удвоенного остатка, если знаки делителя и остатка (делимого) совпадают, и делитель складывается 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.0756 |
|