Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

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

Последовательность действий при делении с восстановлением и без восстановления остатка поясняется на примере деления двоичных чисел 00100000:1111 = = (0010, 0010) соответственно в табл. 1.14 и 1.15, в которых приняты следующие обозначения операций: Q; - сдвиг влево остатка: =рУ - суммирование или вычитание делителя; -Qi - присвоение значения остатку. Заметим, что остаток считается положительным при делении с восстановлением остатка, если в результате вычитания 2Q/ i -У признак переноса CY=0, а при делении без восстановления остатка, если признак переноса CY не меняет своего значения между операциями 2Q, i и 2Q, ,±y, т. е. CY:11 или СУ:00.

При выполнении деления 2и-разрядного делимого на и-разрядный делитель возможно переполнение «-разрядного формата частного: появление абсолютной величины, непредставимой в «-разрядном формате. Очевидно, это имеет место в случае, когда число в старших п разрядах делимого больше или равно делителю. Переполнение необходимо выявлять программным способом и блоки-

Табл. 1.14. Деление с восстановлением остатка

Остаток

Х,-1

Тип операции

01000000

1111

01010000

=Q.<0

1111

01000000

=Q.>0

10000000

1111

10010000

=Q2<0

1111

10000000

=Q2>0

00000000

1111

00010000

=Q3>0

00100000

1111

00110000

=Q4<0

1111

00100000

=Qi>0



Табл. 1.15. Деление без восстановления остатка

Остаток

Тип операции

01000000

1111

01010000

=Q,<0

10100000

1111

10010000

=Q2<0

00100000

1111

00010000

=Q3>0

00100000

1111

00110000

=Q4<0

1111

00100000

=Q4>0

ровать дальнейшие вычисления вследствие их некорректности. Избежать переполнения можно за счет увеличения разрядности частного до разрядности делимого (но при этом в два раза увеличивается и количество циклов деления). Помимо выявления переполнения, при делении чисел необходимо выявлять ситуацию деления на нуль. Заметим, что при анализе переполнения деления целых чисел автоматически выявляется и деление на нуль.

i.5.2. ЦЕЛЫЕ БЕЗЗНАКОВЫЕ ЧИСЛА 1.5.2.1. Формат 16:8= (8,8)

Программа Д16 реализует деление с восстановлением остатка и с размещением сдвигаемых влево разрядов частного в освобождаемых младших разрядах делимого:

ОАОО

ОАООИ

R16:

ЯЮДПРОГРАММА ДЕЛЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ ВЕЗ ЗНАКА 5Ф0РМАТА 16:8=(В,8).

гМЕТОД ДЕЛЕНИЯ С ВОССТАНОВЛЕНИЕМ ОСТАТКА.

/ВХОДНЫЕ ПАРАМЕТРЫ: (H»L)-ДЕЛИМОЕ, <С)-ДЕЛИТЕЛЬ.ВЫХОД-

}НЫЕ ПАРАМЕТРЫ!(Н)-ОСТАТОК,(L)-ЧАСТНОЕ,СУ=0-ПРИЗНАК



гПЕРЕПОЛНЕНИЯ ЧАСТНОГО.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ, ;КРОМЕ <В»Е);СОХРАНЯЕТСЯ. (с).

!ОЦЕНКА5ДЛИНА-28 ЕАИТгВРЕМЯ-НЕ ЕОЛЕЕ 619 ТАКТОВ.

S ПРОВЕРКА ЧАСТНОГО НА ПЕРЕПОЛНЕНИЕ: ЧАСТНОЕ > 8 ЕИТ? ОАОО 7С MOV А,Н

0А01 91 SUB С

0А02 ВО RNC ;ЕСЛИ ПЕРЕПОЛНЕНИЕ,СY=0

ОАОЗ 0608 MVI В,8 гСЧЕТЧИК ЦИКЛОВ

гСЯВИГ ВЛЕВО остатка и частного в (H,L) 0а05 29 ЦИКЛ: ВАС Н

0А06 7С MOV А,Н ;(А)-СТБ ОСТАТКА

0А07 DA130A JC ПЕР1 ;ЕСЛИ ПЕРЕПОЛНЕНИЕ ОСТАТКА

; ВЫЧИТАНИЕ яелите:ля из остатка

ОАОА 91 SUB С

ОАОВ D2140A JNC VEF2 ?ЕСЛИ РАЗНОСТЬ > О

;РАЗН0СТЬ < ОтВОССТАНОВЛЕНИЕ ОСТАТКА

оаое 81 ADD С

OAOF 67 MOV HfA

OAIO С3160А JMP ПЕРЗ

;ПЕРЕПОЛНЕНИЕ ОСТАТКА,РАЗРЯД ЧАСТН0Г0=1

0А13 91 ПЕР1: SUB С

0а14 67 пер2: MOV Н,А

0а15 23 INX Н ;+1 В ЧАСТНОЕ

!ПРОВЕРКА КОНЦА ЦИКЛА

0А16 05 ПЕРЗ: DCR В

0А17 С2050А JNZ ЦИКЛ JЗАЦИКЛИВАНИЕ

0А1А 37 STC !CY=1 0А1В С9 RET 0000 END

Максимальная длительность цикла деления равна 73, время программы 7354-73X8 = 619 тактам.

Программа Д16А в отличие от предыдущей и последующих программ деления реализует способ деления без восстановления остатка:

0А20

0А20 7С 0А21 91 0А22 DO 0А23 0608 0А25 37

ORG 0А20Н

Д16А!

5 )HH1»K»»»»»KK»»» »»»»»»»»»»»»» »»»»»»»»K»K)HHHf к»»»»»»»»»»»

;ПОДПРОГРАММА ДЕЛЕНИЯ ЦЕЛЫХ ДВОИЧНЫХ ЧИСЕЛ БЕЗ ЗНАКА РФОРМАТА 16:8=(8,8).

гМЕТОД ДЕЛЕНИЯ БЕЗ ВОССТАНОВЛЕНИЯ ОСТАТКА. РВХОДНЫЕ ПАРАМЕТРЫ:.(H,L)-ДЕЛИМОЕ, (С)-ДЕЛИТЕЛЬ.ВЫХОД-?НЫЕ ПАРАМЕТРЫ! (Н)-ОСТАТОК, (L)-ЧАСТНОЕ,CY=0-npH3HAK ;ПЕРЕПОЛНЕНИЯ ЧАСТНОГО.ИСПОЛЬЗУЮТСЯ ВСЕ РЕГИСТРЫ, ;КРОМЕ (D,E)fСОХРАНЯЕТСЯ (С).

?0ЦЕНКА!ДЛИНА-58 БАЙТА,ВРЕМЯ -НЕ ЕОЛЕЕ 850 ТАКТОВ. ;к»к»»»к»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*»»»»»»»»»»»»»»»»»» ;ПРОВЕРКА ЧАСТНОГО НА ПЕРЕПОЛНЕНИЕ:ЧАСТНОЕ > 8 БИТ? MOV А,Н

гЕСЛИ nEPEnOflHEHHEFCY=0 Б,8 JСЧЕТЧИК ЦИКЛОВ

;CY=l-nPH3HAK ОСТАТКА = ИЛИ)0



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.036
Яндекс.Метрика