Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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




Различают 3 вида специальных кодов:

1. Прямой [х]пр

2. Обратный [х]обр

3. Дополнительный [х]доп  

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

Положительные числа от 0000 0000 до 0111 1111 (от 0 до +127)

Отрицательные числа от 1000 0000 до 1111 1111 (от 0 до -128)

Для положительных чисел.

Само число, прямой, обратный и дополнительный коды этого числа совпадают друг с другом и равны самому числу. [х] = [х]пр = [х]обр = [х]доп  

Например:  число  5 =     0000 0101 (в двоичном виде)

[х]пр   =0000 0101 – прямой код числа

 [х]обр  =0000 0101- обратный код числа

[х]доп = 0000 0101 – дополнительный код числа

Для отрицательных чисел

[х]пр – то же самое число, только в старшем разряде ставится единица;

[х]обр – единица в старшем разряде и инверсия числа;

[х]доп  = [х]обр + 1.

Например: число -5 = - 0000 0101 (в двоичном виде)

[х]пр = 1000 0101 – прямой код числа (то же самое число и единица в старшем

 разряде);

[х]обр = 1111 1010- обратный код числа ([х]пр и инверсия числа);  

+0000 0001- прибавив 1 в младшем разряде получим [х]доп

[х]доп =1111 1011 – дополнительный код числа ([х]обр + 1);

К примеру: 4 – 2 = ?

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

Для вычитания необходимо получить дополнительные коды чисел:

число 4 (000 0100 В);      число - 2        (–0000 0100 В);

[4]пр = 0000 0100                          [-2]пр = 1000 0010

[4]обр =0000 0100                           [-2]обр = 1111 1101

[4]доп =0000 0100                           [-2]доп =1111 1110

[4]доп + [-2]доп =    0000 0100

                       +1111  1110

                         0000  0010 – результат в дополнительном коде

Так как в старшем разряде результата стоит 0 это значит, что результат положительный, следовательно дополнительный код числа равен самому числу. Таким образом, результат равен 0000 0010, то есть числу +2.

К примеру: 5 – 7 = ?

Для вычитания необходимо получить дополнительные коды чисел:

число 5 (000 0101 В)                   число -7 (- 000 0111 В);

[5]пр = 0000 0101                          [-7]пр. = 1000 0111

[5]обр= 0000 0101                          [-7]обр = 1111 1000

[5]доп =0000 0101                           [-7]доп =1111 1001

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

[5]доп + [-7]доп = 0000 0101

                    +1111 1001

                      1111 1110 – результат в дополнительном коде.

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

1111 1110     (результат сложения чисел в дополнительных кодах).                              

0000 0001 (инверсия результата)                                                

+0000 0001  (прибавление 1 в младшем разряде)

0000 0010 (двоичный код числа 2).

Следовательно 5-7 = -2.

 

КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

Общая характеристика

Арифметические команды позволяют выполнить арифметические операции сложения и вычитания с данными, расположенными в различных блоках микропроцессора. Команды реализуют три способа адресации: непосредственный, регистровый и косвенно – регистровый; бывают одно- и двухбайтные; некоторые команды генерируют флаги. Результат операции чаще всего сохраняется в аккумуляторе.

Команды арифметических операций с непосредственным способом адресации

Код операции Название Флаги Байт Содержание команды
ADI Б2 Сложение А со 2-м байтом все 2 (А) + (Б2)®(А)
AСI B2 Сложение А со 2-м байтом и переносом все 2 (А) + (Б2) +(FС)®(А)
SUI Б2 Вычитание 2-ого байта команды все 2 (A) – Б2®(А)
SBI Б2 Вычитание 2-ого байта команды с заёмом все 2 (А) – Б2 – (FС) ®(A)

 

Команды арифметических операций с регистровым способом адресации

Код операции Название Флаги Байт Содержание команды
ADD R Сложение А с регистром R все 1 (А)+(R) ®(A).
ADС R Сложение с регистром и переносом все 1 (А)+(R)+(FС) ®(A)
SUB R Вычитание содержимого регистра все 1 (А) –(R) ®(A)
SBB R Вычитание содержимого регистра c заёмом все 1 (А) – (R)–(FС)®(A).
DAD B Сложение содержимого регистров H,L и B,C С 1 (B,C)+(H,L)®(H,L)
DAD D Сложение содержимого регистров H,L и D,E C 1 (D,E)+(H,L)®(H,L)
DAD H Удвоение содержимого регистров H,L C 1 (H,L)+(H,L)®(H,L)
DAD SP Сложение содержимого УС и регистров H,L C 1 (УC)+(H,L)®(H,L)
DCR R Декремент регистра ZSPC’ 1 (R)-1®(R).
DCR M Декремент памяти ZSPC’ 1 (<HL>)-1®(<HL>).
DCX B Декремент регистров В,С нет 1 (BC)-1®(BC).
DCX D Декремент регистров D,E нет 1 (DE)-1®(DE).
DCX H Декремент регистров H,L нет 1 (HL)-1®(HL).
DCX SP Декремент указателя стека нет 1 (УС)-1®(УС).
INR R Инкремент регистра ZSPC’ 1 (R)-1®(R).
INR M Инкремент памяти ZSPC’ 1 (<HL>)+1®(<HL>).
INX B Инкремент пары регистров В,С нет 1 (BC)+1®(BC).
INX D Инкремент пары регистров D,E нет 1 (DE)+1®(DE).
INX H Инкремент пары регистров H,L нет 1 (HL)+1®(HL).
INX SP Инкремент указателя стека нет 1 (УС)+1®(УС).
DAA Десятичная коррекция аккумулятора все 1 Преобразует содержимое аккумулятора в двоично-десятичную форму

 

Команды арифметических операций с косвенно-регистровым

способом адресации

Код операции Название Флаги Байт Содержание команды
ADD M Сложение А с памятью все 1 (А)+(М) ®(А)
ADС M Сложение А с памятью и переносом все 1 (А)+(М)+(FС)®(А)
SUB M Вычитание содержимого ячейки памяти из А все 1 (А)–(<HL>)®(A)
SBB M Вычитание содержимого ячейки памяти с заёмом все 1 (А)–(<HL>)–(FС)®(A)

 

ЛОГИЧЕСКИЕ ОСНОВЫ ЭВМ

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

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

Булевая алгебра занимается исчислением высказываний  (Буль 1815 – 1866 гг.).

Высказывание - это утверждение, о котором можно сказать: оно ложно илиистинно. В булевой алгебре содержимым высказывания не интересуются, а интересуются лишь их истинностью или ложностью.

Из нескольких простых высказываний с помощью союзов И, ИЛИ, НЕ можно составить сложное (составное) высказывание, которое тоже будет истинно или ложно. Если высказывание истинно, то его обозначают логической единицей, а если ложно, то логическим нулем.

Пример: Москва стоит на Неве –0 –ложное высказывание

           Ленинград стоит на Неве-1- истинное высказывание

           Москва стоит на Неве (ложное высказывание)ИЛИ Ленинград стоит на Неве (истинное высказывание) в результате получается истинное высказывание .

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

Общий вид логических функций

На вход подаются логические переменные X1....Хn, которые могут принимать значения 0 или 1.

На выходе получаем функции алгебры логики (ФАЛ) f (x1, x2, … , xn) = (0;1), которые также могут принимать значения 0 или 1.

 

 

Связь между входными переменными  X1 ... Хn  и  функциями алгебры логики   f (x1, x2, … , xn) может быть представлена аналитическим или табличным способом.

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

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

Строго доказано, что количество возможных наборов входных переменных зависит от количества этих переменных. Для “n” переменных  существует  К=2n наборов входных переменных.

X1 X2
0 0
0 1
1 0
1 1

 Например:  при n =2 можно получить четыре набора входных переменных (К=2n= 22 = 4)

 Общее число логических функций, которые могут быть получены при n  логических переменных, равно 2К.

Например: при n=2, К=4 общее число логических функций будет равно 24=16. При n=3, К=8 общее число логических функций будет равно 28=256.

Таблица логических функций для двух логических переменных (Х1,Х2)

X1 X2 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

y9 (X1 X2 )=X1^ X2  (конъюнкция, логическое умножение, логическое И) – функция y9 =1 при X1 =1, X2 =1, в остальных случаях равна нулю.

X1 X2 y9
0 0 0
0 1 0
1 0 0
1 1 1

Правила выполнения логического И:  0 Ù 0 = 0

0 Ù 1 = 0

1 Ù 0 = 0

1 Ù 1 = 1

 

y8(X1 X2 ) = X1 Ù  X2 - отрицание конъюнкции (функция Шеффера,) –

 функция   y8 = 0 при X1  = 1, X2 = 1, в остальных случаях функция равна 0.

Правила выполнения логического отрицания ИЛИ: 0 Ú  0 =1

0 Ú 1 =1

1 Ú 0 =1

1 Ú  1 =0

y15(X1 X2 ) =X1 Ú X2 дизъюнкция (логическое сложение, операция ИЛИ) – функция  y15=0 при X1 =0 и  X2 = 0 , в остальных случаях y15=1.

 

y2(X1 X2 )= X1 Ú   X2  - отрицание дизъюнкции, функция y2 =1при X1 = 0 и  X2 = 0 , в остальных случаях y2=0.

y10(X1 X2 ) =X1 ~X2-эквивалентность (равнозначность) – функция y10 =1 при X1 =X2, в остальных случаях y10 = 0.

 

y7(X1 X2 ) =X1 ~X2 отрицание эквивалентности (равнозначности) -  функция y7= 0 при     X1 = X2, в остальных случаях y7 = 1.

y12(X1 X2 ) = X1®X2 -  импликация X1 в X2 , функция y12 = X2  при X1 =1, в остальных случаях y12 = 1.

y14(X1 X2 ) = X2 ®X1 -  импликация X2 в X1 , функция y14 = X1  при X2 =1, в остальных случаях y14 = 1.













Последнее изменение этой страницы: 2018-05-29; просмотров: 167.

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