Реферат: Деление без восстановления остатка со сдвигом остатка

ЗАДАНИЕ

Делениебез восстановления остатка со сдвигом остатка

Вформе с фиксированной запятой: формат (1, 8)

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

Двоично-десятичная системасчисления (код 8421, 8421+6)

Контрольпо модулю

Синхронныйавтомат Мили

Логическийэлемент “ИЛИ-НЕ”

ТриггерJK-типа

Задание выдал  <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">²

___ <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">²_______2003г. Преподаватель<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">:Шерстобитова Т.М.                 

Задание принял <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Symbol">²

___ <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Symbol">²_______2003г. Студент<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">:РодионовС.В.                            .Специальность:           3704         Группа:       ЭВМ 00-2        .  <span Times New Roman",«serif»;mso-fareast-font-family: «Times New Roman»;mso-ansi-language:EN-US;mso-fareast-language:RU;mso-bidi-language: AR-SA">
ВВЕДЕНИЕ

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

Длявсего этого необходимы четкие знания арифметических и логических основ цифровыхавтоматов, принципов анализа и синтеза этих автоматов.

В данном курсовом проектеописан процесс проектирования управляющего автомата (УА), осуществляющийуправление выполнения операции деления без восстановления в коде 8421, 8421+6.Курсовая работа состоит из двух разделов: разработка алгоритма выполненияоперации и непосредственно синтеза УА, реализующего этот алгоритм, а такжепрограммы на языке программирования Ассемблера, выполняющей операцию деления вкоде 8421, 8421+6.

Основной целью курсовойработы является закрепление основных теоретических положений курса ПТЦА,приобретение практических навыков по обработке алгоритмов выполненияарифметических операции в ЦВМ, построению управляющих цифровых автоматов,средств их контроля и диагностики.

        

<span Times New Roman",«serif»;mso-fareast-font-family: «Times New Roman»;text-transform:uppercase;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

1. Разработка микропрограммы выполнения операции

1.1Представление чисел сфиксированной запятой

Необходимостьв указании положения запятой отпадает, если место запятой в разрядной сеткимашины заранее фиксировано раз и навсегда. Такая форма представления чиселназывается представлением с фиксированнойзапятой (точкой).

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

Внастоящее время, в подавляющем большинстве, в компьютерах в формате сфиксированной точкой представляются целые числа.

Взнаковую часть записывается информация о знаке числа. Принято, что знакположительного числа "+" изображается символом 0, а знакотрицательного числа " – " изображается символом 1.

1.2 Обзор дополнительного кода числа

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

А — В = А + ( — В)

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

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

[A]пр=0.an an-1 an-2.....a1 a0,

тогда число – А в этом же кодепредставляется как

[-A]пр = 1.an an-1 an-2.....a1 a0,

тогда число -Aв дополнительном коде изображается в виде

[-A]доп = [-A]об + 1

где

[-A]об = 1.an an-1 an-2.....a1 a0,

где

ai= 1, если ai= 0,

ai= 0, если ai= 1,

ai– цифра i — того разряда двоичного числа. Следовательно,при переходе от прямого кода к обратному все цифры разрядов мантиссы числаинвертируются.

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

Дополнительныйкод некоторого числа получается его заменой на новое число, дополняющее его дочисла, равного весу разряда, следующего за самым старшим разрядом разряднойсетки, используемой для представления мантиссы числа в формате с фиксированнойзапятой. Поэтому такой код числа называется дополнительным.

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

Такимобразом, цифровые разряды отрицательного числа в прямом коде остаютсянеизменными, а в знаковой части записывается единица.<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; layout-grid-mode:line">

1.3 Рассмотрение процесса выполнения операцииделения без восстановления в коде 8421,8421+6

   a)Двоично-десятичная система счисления:

Двоично-десятичныйкод (Д-код) десятичного числа, это такое его представление, в котором каждаядесятичная цифра изображается четырьмя двоичными разрядами (тетрадой издвоичных символов):

A = {a4,n a3,n a2,n a1,n}n {a4,n-1 a3,n-1 a2,n-1a1,n-1}n-1… {a4,0 a3,0 a2,0 a1,0}0 ,

где <img src="/cache/referats/18597/image002.gif" v:shapes="_x0000_i1025">i — номер разряда внутри тетрады, j — номер самой тетрады.

Дляоднозначности перевода чисел в Д-код и обратно желательно, чтобы разряды тетрадимели определенный вес. Максимальное допустимое число в тетраде — 9. Есливозникает число 10 и больше, то единица переходит в следующую старшую тетраду.Существуют различные Д-коды, мы рассматрим Д-код, вес разрядов, тетрады которого следующий: 8, 4, 2, 1.

Десятичные

цифры

8421

8421(+6)

0000

0110

1

0001

0111

2

0010

1000

3

0011

1001

4

0100

1010

5

0101

1011

6

0110

1100

7

0111

1101

8

1000

1110

9

1001

1111

  

б) Свойства кода 8421

1) Коды 8421 и 8421(+6) взаимно дополняющие другдруга, и это свойство используется при выполнение алгебраического сложения.

-3 =1.0011 пк

       1.1100 ок

                1

       1.1101 дк = | 7 |

 

      1.1101 <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">¹

7 (8421)

      1.1101 = 7(8421(+6))

Длярассматриваемого кода 8421нельзя получить обратный или дополнительный кодпростым инвертированием, т.к. инвертирование набора тетрад означает получениедополнения до <img src="/cache/referats/18597/image004.gif" v:shapes="_x0000_i1026">

Следовательно,необходимо убрать разницу. Один из используемых при этом приемов состоит в том,что во все цифровые тетрады числа в коде 8421 добавляется 0110 и после этогопроизводится инвертирование набора.

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

2) Аддитивность системы:

Сi= I1I2I3...In

Cj= J1J2J3...Jn

Eij= E1E2E3...En

Система счисления 8421 аддитивна

3= 0.0011

4= 0.0100

7= 0.0111

   в)   Алгебраическое сложение в коде 8421,8421+6

Первый случай – если слагаемые тетрады имеютодинаковые знаки

         А>0, В>0, <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">å

– ?

A<0, B<0, <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">å

– ?

+

<img src="/cache/referats/18597/image006.gif" v:shapes="_x0000_i1027">

<img src="/cache/referats/18597/image008.gif" v:shapes="_x0000_i1028">

      <img src="/cache/referats/18597/image010.gif" v:shapes="_x0000_i1029">

Если при этом был перенос p= 1, то выполняется К = 0

Если при этом не было переноса p= 0,то выполняется К = –  6

Второй случай – если слагаемые тетрады имеютразличные знаки

         А>0, В<0

A<0, B>0

<img src="/cache/referats/18597/image012.gif" v:shapes="_x0000_i1030">

<img src="/cache/referats/18597/image014.gif" v:shapes="_x0000_i1031">

+

<img src="/cache/referats/18597/image016.gif" v:shapes="_x0000_i1032">

<img src="/cache/referats/18597/image018.gif" v:shapes="_x0000_i1033">

      <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">å

Если <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">å

> 0 и при этом был перенос p= 1,то выполняется К = 0,

Если <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">å

> 0 и при этом не было переноса p= 0,то выполняется К = –  6

Если <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">å

< 0 сумма получается в коде 8421(+6),если при этом был перенос p= 1, то выполняется К = +6,

Если <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">å

< 0 сумма получается в коде 8421(+6),если при этом не было переноса p= 0, то выполняется К = 0

г)  Деление вкоде 8421, 8421+6

1) Тетрада рассматриваетсякак единое целое, и сдвиг осуществляется на одну тетраду после формированияочередной тетрады частного.

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

3) Появление остатка спротивоположным знаком является признаком конца формирования очередной тетрадычастного, осуществляется сдвиг остатка сразу на одну тетраду. И переходят кформированию следующей тетрады частного.

4) Каждое алгебраическоесложение требует соответствующей коррекции.

5) Пункты 2,3,4 повторяютстолько раз, сколько нужно получить тетрад в частном.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Реализация примера в десятичном виде:

<div v:shape="_x0000_s1026">

д.к.=9.4267


+  

0.13570011

0.5733

9.4267

0  .  9   0   9   0

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

9.56240011

5.62400110

      -1 <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">+

1 -1 +1

      -1 <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">+

1 -1 +1

0.5733

      -1 <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">+

1 -1 +1

+

6.19730110

      -1      -1 +1

0.5733

      -1      -1 +1

+

6.77060110

      -1      -1 +1

0.5733

      -1          +1

+

7.34390110

0 .   2   3   6   7    

0.5733

  

+

7.91720110

  

0.5733

   

+

8.49050110

0.5733

+

9.06380110

0.5733

+

9.63710110

0.5733

<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family: Symbol">¬

 +

0.21040110

2.10401100

9.4267

+

1.53071100

9.4267

+

0.95741100 

9.4267

+

0.38411100

9.4267

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

9.81081100

8.10811000

0.5733

+

8.68141000

0.5733

+

9.25471000

0.5733

+

9.82801000

0.5733

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

0.40131000

4.01310000

9.4267

+

3.43980000

9.4267

+

2.86690000

9.4267

+

2.29320000

9.4267

+

1.71990000

9.4267

+

1.14660000

9.4267

+

0.57330000

9.4267

0.00000000

           

Реализация примера в двоично-десятичном коде 8421,8421+6

                                                                                     д.к.1111101010001100 1101

+

0000 0001 0011 0101 0111 0000 0000 0001 0001

0110  1011  1101  1001 1001

1111 1010 1000 1100 1101

0000  1001  0000  1001 0000

+

1111 1011 1100 0010 0100

         -0001+0001-0001+0001

1010 1010 1010                   коррекция

         -0001+0001-0001+0001

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

   +

1001 0101 0110 0010 0100 0000 0000 0001 0001

         -0001+0001-0001+0001

0101 0110 0010 0100 0000 0000 0001 0001 0000

         -0001          -0001+0001

0110 1011 1101 1001 1001

         -0001          -0001+0001

+

1100 0001 1111 1101 1001

         -0001          -0001+0001

1010          1010 1010 1010 коррекция

         -0001                   +0001

+

0110 0001 1001 0111 0011

          0010  0011 0110  0111

0110 1011 1101 1001 1001

+

1100 1101 0111 0000 1100

1010 1010                   1010 коррекция

+

0110 0111 0111 0000 0110

0110 1011 1101 1001 1001

+

1101 0011 0100 1001 1111

1010                   1010 1010 коррекция

+

0111 0011 0100 0011 1001

0110 1011 1101 1001 1001

+

1101 1111 0001 1101 0010

1010 1010          1010          коррекция

+

0111 1001 0001 0111 0010

0110 1011 1101 1001 1001

+

1110 0100 1111 0000 1011

1010          1010          1010 коррекция

+

1000 0100 1001 0000 0101

0110 1011 1101 1001 1001

+

1111 0000 0110 1001 1110

1010                   1010 1010 коррекция

+

1001 0000 0110 0011 1000

0110 1011 1101 1001 1001

+

1111 1100 0011 1101 0001

1010 1010          1010          коррекция

+

1001 0110 0011 0111 0001

0110 1011 1101 1001 1001

+

0000 0010 0001 0000 1010

                                    1010 коррекция

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

0000 0010 0001 0000 0100 0000 0001 0001 0000

0010 0001 0000 0100 0000 0001 0001 0000 0000

1111 1010 1000 1100 1101

+

0001 1011 1001 0000 1101

         1010 1010          1010 коррекция       

+

0001 0101 0011 0000 0111

1111 1010 1000 1100 1101

+

0000 1111 1011 1101 0100

         1010 1010 1010          коррекция

+

0000 1001 0101 0111 0100

1111 1010 1000 1100 1101

+

0000 0011 1110 0100 0001

                  1010                   коррекция

+

0000 0011 1000 0100 0001

1111 1010 1000 1100 1101

+

1111 1110 0001 0000 1110

1010 1010                   1010 коррекция

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

1001 1000 0001 0000 1000 0001 0001 0000 0000

1000 0001 0000 1000 0001 0001 0000 0000 0000

0110 1011 1101 1001 1001

+

1110 1100 1110 0001 1010

1010 1010 1010          1010 коррекция

+

1000 0110 1000 0001 0100

0110 1011 1101 1001 1001

+

1111 0010 0101 0101 1101

1010                   1010 1010 коррекция

+

1001 0010 0101 0100 0111

0110 1011 1101 1001 1001

+

1111 1110 0010 1110 0000

1010 1010          1010          коррекция

+

1001 1000 0010 1000 0000

0110 1011 1101 1001 1001

+

0000 0100 0000 0001 1001

                                    1010 коррекция

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¬

+

0000 0100 0000 0001 0011 0001 0000 0000 0000

0100 0000 0001 0011 0001 0000 0000 0000 0000

1111 1010 1000 1100 1101

+

0011 1010 1001 1111 1110

         1010 1010 1010 1010 коррекция

+

0011 0100 0011 1001 1000

1111 1010 1000 1100 1101

+

0010 1110 1100 0110 0101

         1010 1010                   коррекция

+

0010 1000 0110 0110 0101

1111 1010 1000 1100 1101

+

0010 0010 1111 0011 0010

                  1010                   коррекция

+

0010 0010 1001 0011 0010

1111 1010 1000 1100 1101

+

0001 1101 0001 1111 1111

         1010          1010 1010 коррекция

+

0001 0111 0001 1001 1001

1111 1010 1000 1100 1101

+

0001 0001 1010 0110 0110

                  1010                   коррекция

+

0001 0001 0100 0110 0110

1111 1010 1000 1100 1101

+

0000 1011 1101 0011 0011

         1010 1010                   коррекция

+

0000 0101 0111 0011 0011

1111 1010 1000 1100 1101

0000 0000 0000 0000 0000

                                     

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

 

1.4 Структурнаясхема ОА

(Приложение А, лист № 1 )

  Дляреализации предложенного алгоритма выполнения операции деления необходимыследующие операционные элементы:

1)<span Times New Roman"">   

2)<span Times New Roman"">   

4р.- переносы.

3)Рг.В(0-19) – регистр частного: 4р.- знак, 16р.- мантисса частного.

4)регистр Рг.К(0-3) – регистр коррекции.

5)счетчик Сч.1 — этот счетчик необходим для формирования тетрады  частного.

6) счетчик Сч.2 — этотсчетчик необходим для выхода из цикла деления, выход будет осуществлен послетого, как будут пройдены все тетрады.

7)  счетчик Сч.3 — этот счетчик необходим для выхода из коррекции.

1.5Разработка граф-схемы алгоритма (ГСА)

                                                                              (Приложение А, лист № 2,3)

Для реализации любой арифметической операциинеобходимо знать алгоритм ее выполнения, ниже приводится алгоритм операцииделения чисел с фиксированной запятой в коде 8421, 8421+6. Если блокивыполняются последовательно, то ссылки на следующий блок не приводятся.  

Таблица 1 — Определение блоков

Номер блока Назначение

A00(Л2)

Начало.

B00(Л2)

Начальная установка:

СМ:=X, Рг.А:=Y, Сч1:=0, Сч2:=0, Сч3:=0, Рг.K:=«1010».

C00(Л2)

Определяем знак частного путем сложения знаковых разрядов делимого и делителя по модулю два и заносим его в Рг.B[16-19].

D00(Л2)

Первое пробное сложение делимого и делителя, делитель в дополнительном коде.

F00(Л2)

Проверяем СМ[40-43]=0000, если Да то на G00(Л2), иначе на B00(Л3).

G00(Л2)

Программа обработки прерываний (АВОСТ).

Выдача сообщения о переполнение.

B00(Л3)

Проверяем СМ[22,23]=11, т.е. на наличие запрещенных комбинаций, если Да то на D00(Л3), иначе на C01(Л3).

C01(Л3)

Проверяем СМ[21,23]=11, т.е. на наличие запрещенных комбинаций, есл

еще рефераты
Еще работы по компьютерам и переферийным устройствам