Микропроцессорные устройства

Автор работы: Пользователь скрыл имя, 11 Января 2014 в 17:55, курс лекций

Краткое описание

Работа содержит конспекты лекций по дисциплине "Микропроцессорные устройства".

Вложенные файлы: 1 файл

mikroprocessornye_ustroistva.doc

— 3.69 Мб (Скачать файл)

Перевод дробной части

16*0,328125=5,25     5(СЗР)

16*0,25=4,0               4(МЗР)

0,32812510=0,5416

Общий результат: 634,32812510=27А,5416

                                    

 

                                    Двоичная арифметика

 

Сложение и вычитание  двоичных чисел без знака.

Сложение двоичных чисел подобно  сложению десятичных. При сложении двоичных чисел (как и десятичных) операции начинаются с обработки наименьших значащих цифр, расположенных в крайних справа позициях. Если результат сложения значащих цифр двух слагаемых не помещается в соответствующем разряде результата, то происходит перенос . Цифра, переносимая в соседний слева разряд, добавляется к содержимому последнего. Сложение цифр любых одноименных разрядов может повлечь за собой перенос в более старший разряд. Перенос возникает, если результат сложения больше 1 в случае двоичной системы.

Рассмотрим пример:

Слагаемое  99…………………01100011

+

Слагаемое  95…………………01011111

Сумма        194………………..11000010

Рассмотренный пример свидетельствует  о простоте процедуры двоичного  сложения. Единственное неудобство, присущее двоичным операциям - громоздкость записи больших чисел в двоичной  форме, что вызывает множество переносов из одного разряда в другой. Рассмотрим таблицу 1. Результат сложения двоичных цифр одноименных разрядов находится на пересечении соответствующих строки и столбца. Если пересечение происходит на тёмном фоне, то имеет место перенос единицы в ближайший старший разряд.

В ближайший старший разряд.

+

Слагаемое

0

1

Слагаемое

0

0

1

1

1

0


Двоичное вычитание подобно десятичному. Таблица 2 иллюстрирует правило двоичного вычитания. Из таблицы 2 следует, что, если уменьшаемое меньше вычитаемого, то имеет место заём. Это происходит в том случае, когда из нуля, содержащегося в двоичном разряде, вычитается единица. Благодаря заёму единицы из ближайшего старшего разряда в одноимённом разряде результата получается единица.

 

-

Вычитаемое

0

1

Уменьшаемое

0

0

1

1

1

0


 

Пример:

               Уменьшаемое  109………………..01101101

                                                                      -

               Вычитаемое      49………………...00110001

                Разность            60………………..00111100

 

 

2.4 Двоичные числа в  дополнительном коде

До сих пор предполагалось, что  числа положительные. Выясним, как  представляются в ЭВМ числа со знаком. Если нужно использовать числа со знаком, то применяется специальный дополнительный код, что упрощает аппаратные средства ЭВМ (а именно АЛУ). Формирование дополнительного кода, или сокращённого дополнения, состоит из двух операций: получения обратного кода и добавления единицы. Рассмотрим следующую таблицу.

8-разрядное двоичное число

                      Десятичный эквивалент

Двоичного числа со знаком (отрицательное  число в дополнительном коде)

Двоичного числа без знака

00000000

+0

0

00000001

+1

1

00000002

+2

2

………….

…………..

………..

01111101

+125

125

01111110

+126

126

01111111

+127

127

10000000

-128

128

10000001

-127

129

10000010

-126

130

10000011

-125

131

…………

…………….

……………

11111101

-3

253

11111110

-2

254

11111111

-1

255


 

Как видно из таблицы, посредством 8 бит можно представить в двоичной форме десятичные числа от -128 до +127. В этой таблице показаны два типичных для МП способы использования двоичных кодов: как двоичных чисел со знаком, так и без знака. Левый столбец содержит двоичные числа от 00000000 до 11111111, правый столбец – их десятичные эквиваленты от 0 до 255, полученные  в предположении, что рассматриваются числа без знака. В центральном столбце находятся десятичные эквиваленты двоичных чисел левого столбца, полученные в предположении, что отрицательные числа записывались в дополнительном коде.

Отличительным признаком  числа со знаком является особая трактовка  старшего бита поля, представляющего  число. В качестве поля могут выступать байт, слово, двойное слово. Понятно, что физически этот бит ничем не отличается от других. Всё зависит от команды, работающей с данным полем. Если в её алгоритме заложена работа с целыми числами со знаком, то она будет по-особому трактовать старший бит поля. Если старший бит равен 0 – число положительное. Если старший бит равен 1 – число считается отрицательным и записанным в дополнительном коде.

В среднем столбце таблицы отрицательные  числа содержат 1 в восьмом разряде.

Получение дополнительного кода числа  продемонстрируем на следующем примере:

Число 410 в двоичной форме     00000100

Обратный код числа 410     11111011

+

Добавляем к обратному коду 12   00000001

Число 410 в дополнительном коде    11111100 

Для представления двоичного  числа в дополнительном коде можно  пользоваться другим способом, отличным от описанного выше и более коротким по числу операций. В поисках первого бита, равного единицы, просматривают справа налево разряды числа, начиная с наименьшего по значимости. До тех пор пока встречаются нули, их копируют в одноимённые разряды результата. Первая встретившаяся единица также копируется в соответствующий разряд результата; но каждый последующий бит исходного числа заменяется на обратный.

Ещё пример: число 910 представим в дополнительном коде.

00001001

11110110

+

00000001

11110111  

 

 

2.5 Арифметика в дополнительном  коде

 

МП использует числа  в форме дополнительного кода потому, что он в состоянии выполнять операции сложения, инверсии и иккрементирование. МП не приспособлен для прямого вычитания. Он использует сумматоры и для выполнения вычитания оперирует над дополнительным кодом. В общем случае при сложении или вычитании чисел со знаком результат есть также число со знаком. Если при этом бит старшего разряда равен единице, то результат – отрицательное число в дополнительном коде.

Если требуется определить абсолютное значение результата, то его необходимо представить в обратном коде, а затем прибавить единицу.

Используя дополнительный код и  сумматор МП выполняет вычитание, которое  происходит следующим образом. Определяется дополнительный код вычитаемого и производится сложение этого кода с уменьшаемым. Если разность – число положительное (бит старшего разряда равен 0), то бит переноса необходимо отбросить; полученная последовательность битов и есть двоичный код результата. Если разность – число отрицательное (бит старшего разряда равен 1), то она представлена в дополнительном коде.

Рассмотрим примеры.

  1. Вычислить разность чисел 58-23

а) Определение дополнительного  кода числа 23

число 2310        00010111

обратный код      11101000

+

прибавляем единицу     00000001

дополнительный код числа 2310   11101001

б) Вычисление разности.

число 5810        00111010   58

+      -

11101001  23

Разность 3510             100100011   35

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

  1. Вычислить разность чисел 26-34

а) Определение дополнительного  кода числа 34

число 3410        00100010

обратный код числа      11011101

+

прибавляем единицу      00000001

дополнительный код числа 3410     11011110

б) Вычисление разности:

26    00011010

-    +

34    11011110

-08    11111000

Видно, что разность получилась в  форме дополнительного кода, поскольку в старшем разряде 1.

в) Определение абсолютного значения разности.

 

дополнительный код разности   11111000

обратный код      00000111

+

прибавляем единицу     00000001

абсолютное значение разности 810     00001000

 

  1. Сложить десятичные числа -210 и -510

210        00000010

обратный код      11111101

+

00000001

дополнительный код -210     11111110

 

510        00000101

11111010

+

00000001

дополнительный код 510     11111011

Числа в дополнительном коде складываются

-2        11111110

+        +

-5        11111011

-7             1  11111001



Старший бит

 

 

Старший бит результата является переполнением 8-разрядного регистра и им пренебрегаем. В 8-ом разряде стоит 1. Значит, получено отрицательное  число в дополнительном коде.

Найдём абсолютное значение разности.

11111001

00000110

+

00000001

абсолютное значение разности 710   00000111

 

Двоичные умножение  и деление

При умножении одного числа на другое одно из чисел называется множимым, другое – множителем. Ниже изображена таблица двоичного умножения. Аналогичную таблицу десятичного умножения, состоящую из 10 строк и 10 столбцов, мы знаем наизусть. По сравнению с ней таблица двоичного умножения чрезвычайно проста: в умножении участвуют цифры, принимающие только два значения – 0 или 1, в результате умножения перенос не возникает никогда.

*

Множимое

0

1

Множитель

0

0

0

1

0

1


 

Воспользуемся таблицей для вычисления произведения двоичных эквивалентов десятичных чисел 17 и 12.

Множимое 1710         10001

*

Множитель 1210         01100

00000

        00000

                      10001

    10001

  00000

Результат 20410                     11001100

 

Первые два частных  произведения включают только нули, так как множители – значения первого и второго разрядов – равны нулю. Третье частное произведение – копия множимого. Разница между ними заключается лишь в том, что копия сдвинута относительно множимого на два двоичных разряда влево, поскольку для получения этого частного произведения в качестве множителя используется значение третьего разряда. Четвёртое частное произведение также является копией множимого смещённой относительно последнего на три двоичных разряда влево. Все остальные произведения – нули. Сложение всех частных произведений в данном примере не сопровождается переносом, однако возникновение последнего не исключено.

Обычно умножение и деление  как отдельные операции в МП  не предусматриваются. Эти операции выполняются с использованием специальной подпрограммы. Программно умножение реализуется путём сдвига и сложения. Перечислим правила этого способа.

  1. Формирование первого частного произведения. Если значения младшего значащего разряда множителя равно 0, то и результат равен 0. Если значение этого разряда равно 1, то результат является копией множимого.
  2. Правило сдвига. При использовании очередного разряда множителя для формирования частичного произведения производится сдвиг множимого на один разряд влево.
  3. Правило сложения. Каждый раз, когда значение  разряда множителя равно 1, к результату необходимо прибавлять множимое, расположенное в позиции, определённой правилом сдвига.
  4. Искомое произведение есть результат выполнения всех операций сдвига и сложения.

Информация о работе Микропроцессорные устройства