Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

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

ние. Содержимое регистров общего назна4ения, результата и признаков изменяется только в процессе выполнения команд. После окончания действия сигнала Сброс МП начинает выполнять цикл MI и выдает на ША нулевой адрес.

При обработке данных на МП ИК80 необходимо учитывать особенность реализации операций сложения и вычитания, которая состоит в том, что операция вычитания выполняется как операция сложения первого операнда с дополнительным кодом второго операнда. При этом бит переноса Q в регистре признаков устанавли-ваетвя в 1, если выполнялась операция вычитания и переноса из старшего разряда сумматора не было или если выполнялась операция сложения и перенос -из старшего разряда сумматора был, а бит знака 5 повторяет значение старшего разряда байта резуль- тэта. В дальнейших операциях Q учитывается по-разному: при сложении (ACI или ADC) Q = 1 увеличивает, а при вычитании {SBJ, SBB) уменьшает результат на единицу младшего разряда. Такая организация обработки признака Q облегчает выполнение многобайтовых операций.. Например, операция 270-529 выполняется по следующей схеме:

старший и младший б айты чисел

270 = 256+ 14 ОО0000О1 00001110 529 = 512 + 17 00000010 00010001 14 00001110 17 ИЮНЮ

11111101

переноса из сумматора нет, следовательно, Q = 1 256 = 00000001 -512= 11111101 1

11111110-

11111110 11111101

дополнительный код числа -259 = -(256 -Ь 3) = -00000001 00000011.

Указанная особенность выполнеиня операций приводит к тому, что байт можно интерпретировать тремя способами.

1. Двоичное число со знаком, представленное в дополйитель-ном коде. Нуль в старшем разряде байта означает знак плюс, а единица - минус. Остальные семь бит определяют величину числа.

2. Двоичное число без знака. В этом случае все 8 бит определяют величину числа.

3. Двухразрядное десятичное число, две десятичные цифры которого представлены соответственно четырьмя старшими и младшими разрядами байта. В этом случае результаты операций должны Корректироваться путем применения DAA.

Возможны и другие способы интерпретации байта, кот,)рые должны учитывать указанные особенности реализации арифметических операций. Рассмотрим примеры.

Процессы выполнения в МП однобайтовых JKoмaлд сложения а вычитания при 1-м способе интерпретации байта на примере

2* 35



1.12. Сложение чисел 14 и -17

Представление чисел

с

. о к я: J й-

двоичное

14 -17

00001110

00001110

11111101

14 17

00001110 00010001

00001110 11101110

11111101

1.13. Примеры вейсгкий над .воично-десятичными чкслгт

Действия над числ.уми

ДEOИЧHW.Ш

а

десятичными

Суммитор АЛУ

о

, 23 + 15 38

0010 ООП 0001 0101

ООП 1000

Коррекция +00

0000 0000

ООН 1000

23 + 18 41

0010 ООН 0001 1000

ООН 1011

0000 оно

Коррекция +06

0100 0001

0010 1000.

0111 100]

1010 0001

оно оно

Коррекция +66

0000 0111

чисел 14 и'-17 приведены в табл. 1,12. Следует заметить, что в МП отсутствует аппаратное генерирование сигнала переполнения разрядной сетки, возникающего при данной интерпретации байта, например, при сложении чисел одинакового знака, сумма которых по модулю больше T28.

Второй способ интерпретации байта удобен при операциях с числами одного знака и при многобайтовых операциях. Переполнение разрядной сетки в этом случае фиксируется признаком Q = 1.

Третий способ интерпретации байта совместно с командой десятичной коррекции позволяет организовать в МП обработку десятичных чисел, представленных в двоично-десятичном, коде с весами 8, 4, 2 и 1. Необходимость в коррекции, обусловлена тем, что двоично-десятичные цифры суммируются на двоичном сумматоре. Вследствие этого возникающий из тетрады перенос .уменьшает ее значение на 16 (вес переноса в единицах младшего разряда данной тетрады), а не на 10, как это должно быть при десятичном Сло-.жении. С другой стороны, перенос из тетрады сумматора возникает при условии, что сумма больше 15, а не 9, как это должно.быть при десятичном сложении. Вызвать перенос и откорректировать двоично-десятичную цифру как в первом, так и во втором случае можно за счет прибавления к данной тетраде цифры 6. Указанное прибавление надо делать, если был перенос из данной тетрады или содержимое данной тетрады больше 9, или цифра в старшей тетраде равна 9, а в младшей - больше 9. Для фиксации переноса из младшей тетрады байта служит признак q, а из старшей - Q. Действия над двоично-десятичными числами приведены в табл. 1.13.

Десятичной коррекции для команд вычитания в МП нет. Поэтому десятичное вычитание в МП следует реализовать путем при*



1.14. Действия над десятичными числами 63 и 79

бавления дополнительного кода вычитаемого, формируемого по правилу 10* - Y, где li - число десятичных разрядов, отведенных для представления Y. При этом 10* - Y получают в два этапа. На пер- вом этапе формируют обратный

-- код по правилу 10* - 1 - I, а иа втором - к обратному коду добавляется 1. Прибавление 1 совмещают, с операцией суммирования путем использования команды сложения с учетом переноса, установленного предварительно в I. Примеры вычитания по описанному правилу десятичных чисел 63 и 79 приведены в табл. 1.14. Признак Q = 1, появляющийся после коррекции результата операции 79-63, соответствует числу 10* - 100, возникающему в виде переноса ,из старшего разряда сумматора, который . при операциях в дополнительных, кодах, как известно, игнорируется. Ука-

заиный признак можно использовать для определения знака числа, а именно; при отрицательном результате Q = О, а результат представлен в дополнительном коде.

Во многих применениях МП 8 бит недостаточно для достижения заданной точности представления чисел. В этом случае числа представляются

двумя или более байтами, основные арифметические операции над которыми реализуются программным путем. В табл. 1.15 приведена программа многобайтового сложения двоичных чисел, расположенных в п ячейках, начиная соответственно с адресов а и р (старшие байты чисел расположены в ячейках с большими адресами), с занесением результата на место первого числа. Регистр PD служит в качестве счетчика циклов. При подготовке / цикла в него командой MVf, в адресной части которой и втором (адресном) байте указаны соответственно номер РО. и п, заносится длина чисел. При сложении очередных байтов чисел его содержимое уменьшается на 1. По кулю этого регистра командой JZ осуществляется переход к команде HLT. Адреса очередных- байтов

,формнруются в регистрах РВС и PHL. Адреса N первых байтов команд образуют ряд со, со + 2, co-f 5, и -f 21, В ячейках с пропущенными -в указанном ряду номерами располагаются вторые И третьи байты команд соответствующей длины. Например, команды М К/ и yZ двух- и трехбантные. Следовательно, в ячейке с адре-

Действия

над

числами

двоичными

десятичными

Сумматор АЛУ

99 ~63

j 36

+79 116

01 11

1001 1001 1001 1100

ООП оно 1

0111 1001

1011 0000

Коррекция -Ь66

оно оно

0001 оно

99 ~79

,20 + 1

1001 1001

1000 оно 1

0010 0000

63 84

Коррекция 00

оно ООН

1000 0100

0000 0000

Дополнительный код-16

1000 0100



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