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

Автор работы: Пользователь скрыл имя, 21 Апреля 2016 в 13:07, контрольная работа

Описание работы

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

Файлы: 1 файл

ответы на экзамен.doc

— 113.50 Кб (Скачать файл)

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

 

  1. Представление положительных целых чисел в двоичном коде.
  2. Представление целых чисел со знаком в двоичном коде. Прямой, дополнительный код. Модифицированный дополнительный код, для чего применяется.

 

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

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

Дополнительный код двоичного числа получается добавлением 1 к младшему значащему разряду его дополнения до 1.

модифицированных кодов состоит в том, что к знаковому разряду добавляется ещё один разряд: 
"+" ставится в соответствие 00  
"–" ставится в соответствие 11  
Тогда, по определению модифицированным дополнительным кодом числа называется 
Возникающий в знаковых разрядах перенос теряется. В целом же модифицированный код не отличается от простого дополнительного. Аналогично, по определению, обратным кодом является:  
Как и в случае простого обратного кода, возникающая единица переноса в знаковых разрядах по цепи циклического переноса добавляется в младший разряд цифровой части числа.

3.      Представление вещественных чисел с фиксированной точкой в двоичном коде

      4.      Представление вещественных чисел  с плавающей точкой в двоичном  коде

 

 

Типовые узлы ЭВМ

  1. Инвертор (элемент НЕ), дизъюнктор (элемент ИЛИ), конъюнктор (элемент И). Их принцип работы, таблицы истинности.

 

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

Дизъю́нкция, логи́ческое сложе́ние, логи́ческое ИЛИ, включа́ющее ИЛИ; иногда просто ИЛИ —логическая операция, по своему применению максимально приближённая к союзу «или» в смысле «или то, или это, или оба сразу»

Конъю́нкция  логическая операция, по своему применению максимально приближенная к союзу «и». Синонимы: логи́ческое «И», логи́ческое умноже́ние, иногда просто «И»

 

  1. Элемент И-НЕ, элемент ИЛИ-НЕ, исключающее ИЛИ (сложение по модулю 2). Их принцип работы, таблицы истинности, схемы.

             Элемент «И-НЕ» (NAND)

Элемент И-НЕ работает точно так же как «И», только выходной сигнал полностью противоположен. Там где у элемента «И» на выходе должен быть «0», у элемента «И-НЕ» - единица. И наоборот.

Элемент «ИЛИ-НЕ» (NOR)

Та же история – элемент «ИЛИ» с инвертором на выходе.

 

 

 

 

 

 

Элемент «Исключающее ИЛИ» (XOR)

Операция, которую он выполняет, часто называют «сложение по модулю 2». На самом деле, на этих элементах строятся цифровые сумматоры.Смотрим таблицу истинности. Когда на выходе единицы? Правильно: когда на входах разные сигналы. На одном – 1, на другом – 0. Вот такой он хитрый.

  1. Одноразрядный двоичный сумматор, сумматор с переносом. Их принцип работы, таблицы истинности, схемы, применение

 

Сумматор является основным узлом арифметико-логического устройства ЭВМ и служит для суммирования чисел посредством поразрядного сложения.

Сумматор выполняет сложение многозначных двоичных чисел.  Он представляет собой последовательное соединение одноразрядных двоичных сумматоров, каждый из которых осуществляет сложение в одном разряде. При этом если сумма двух цифр в данном разряде больше или равна  основанию  используемой системы счисления, то возникает перенос (Pj,j=1,…, n-1 на схеме) старшего разряда в соседний сумматор.

Одноразрядный сумматор должен иметь два выхода: для суммы и для переносимого значения. У него может быть два (на схеме правый справа сумматор) или три (для складываемых значений и значения переноса) входа.

Одноразрядный  двоичный сумматор на два входа и два выхода называется одноразрядным полусумматором.

 

  1. Дешифраторы с одним, двумя и тремя входами. Принцип работы, таблицы истинности, схемы, применение.

 

дешифратор – это устройство, преобразующее цифровой сигнал, в какой либо кодировке в другую, не закодированную форму

Дешифратор – логическая комбинационная схема, которая имеет n информационных входов и 2n выходов. Каждой комбинации логических уровней на входах будет соответствовать активный уровень на одном из 2n выходов. 

 

  1. Коммутаторы с одним, двумя и тремя адресными входами. Принцип работы, таблицы истинности, схемы, применение.

 

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

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

     

 

  1. Триггер. Принцип работы, таблица истинности, схема, применение.

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

Простейший триггер состоит из двух элементов «И – НЕ»; входы и выходы которых соединены кольцом: выход первого соединен со входом второго  и выход второго соединен со входом первого. При этом получается устройство с двумя устойчивыми состояниями. Один вход обозначается буквой S (от английского слова «SET»), а другой – буквой R(от английского слова «Reset» - переустановка или «сброс»).

При подаче на оба входа триггера логического нуля (S=R=0) на обоих входах триггера должна установиться логическая единица. Это запрещенное состояние триггера; оно не используется.При S=0 и R=1 на выходе Q устанавливается логическая единица, в этом случае говорят, что триггер установлен в состояние 1.При S=1 и R=0 происходит сброс сигнала на выходе Q  - на нем устанавливается логический ноль. Говорят, что триггер установлен в состояние 0.При S=1 и R=1 триггер находится в состоянии покоя  - это режим хранения , т.е. на выходах Q  и Q остаются прежние значения сигнала.

 

Язык Ассемблер

 

  1. Регистры и их назначение: общего назначения, индексные, сегментные. Флаги и их назначение.

 

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

AX — аккумулятор. Использовался  для хранения операндов в командах  умножения и деления, ввода-вывода, в некоторых командах обработки  строк и других операциях;

BX — регистр базы. Используется  для хранения адреса или части  адреса операнда, находящегося в  памяти;

CX — счётчик. Содержит количество  повторений строковых операций, циклов и сдвигов;

DX — регистр данных. Используется  для косвенной адресации портов ввода-вывода, а также как «расширитель» аккумулятора в операциях удвоенной разрядности;

SI — регистр адреса источника. Используется в строковых операциях, а также в качестве индексного  регистра при обращении к операндам  в памяти;

DI — регистр адреса приёмника. Используется в строковых операциях, а также в качестве индексного регистра при обращении к операндам в памяти;

BP — указатель кадра стека. Используется  для адресации операндов, расположенных  в стеке;

SP — указатель стека. Используется при выполнении операций со стеком, но не для явной адресации операндов в стеке.

Первые четыре регистра могут делиться на две однобайтовых части каждый: AH, BH, CH и DH для старших байтов и AL, BL, CL и DL для младших байтов.

 

Индексные регистры

К регистрам общего назначения иногда относят и индексные регистры процессора 80386 — ESI, EDI и ЕВР (или SI, DI и ВР для 16-разрядных действий). Обычно эти регистры используются для адресации памяти: обращения к массивам, индексирования и т.д. Отсюда их имена: индекс источника (Source Index), индекс приемника (Destination Index), указатель базы (Base Pointer).Но хранить в них только адреса совсем необязательно: регистры ESI, EDI и ЕВР могут содержать произвольные данные. Эти регистры программно доступны, то есть их содержание может быть изменено программистом. Другие регистры лучше «руками нетрогать».У регистров ESI, EDI и ЕВР существуют только в 16-разрядная и 32-разрядная версии.

 

 

 

Сегментные регистры

Эту группу регистров можно отнести к регистрам состояния. Регистры из этой группы используются при вычислении реального адреса (адреса, который будет передан на шину адреса). Процесс вычисления реального адреса зависит от режима процессора (реальный или защищенный) и будет рассмотрен в следующих главах. Сегментные регистры только 16-разрядные, такие же, как в 80286.Названия этих регистров соответствуют выполняемым функциям: CS (Code Segment, сегмент кода) вместе с EIP (IP) определяют адрес памяти, откуда нужно прочитать следующую инструкцию; аналогично регистр SS (Stack Segment, сегмент стека) в паре с ESP (SS:SP) указывают на вершину стека. Сегментные регистры DS, ES, FS, и GS (Data, Extra, F и G сегменты) используются для адресации данных в памяти.

 

  1. Команда MOV, её формат, действие. Способы адресации. Команды CBW, CWD, их форматы, действие.

 

            Эта команда используется для копирования значения из одного места в другое. Это  может быть регистр, ячейка памяти или непосредственное значение (только как исходное значение). Синтаксис команды:  
 
mov приемник, источник 

 

 Команды CBW/CWDE и CWD/CDQ осуществляют преобразование хранящегося в аккумуляторе байта (AL), слова (АХ) или двойного слова (ЕАХ) соответственно в одинарное, двойное или четверное слово (16,32 или 64 разряда) путем расширения знакового разряда. При выполнении команд CBW, CWDE расширенный операнд остается в аккумуляторе: AL в АХ или АХ в ЕАХ. При выполнении команд CWD, CDQ расширение АХ, ЕАХ производится в регистры DX или EDX, куда заносится старшая половина (расширенный знак) результата. Команды CBW, CWD реализуются, когда процессор работает в режимах реальных адресов или виртуального 8086 (обработка 16-разрядных слов). Команды CWDE, CDQ выполняются в защищенном режиме (обработка 32-разрядных слов). Эти операции обычно производятся перед выполнением команды IDIV для образования из 8-, 16- или 32-разрядных операндов делимого удвоенной разрядности.

 

  1. Арифметические команды ADD, SUB, ADC, SBB, NEG, MUL, IMUL, DIV, IDIV. Их форматы, действие.

           

add приемник,источник      

Команда add используется для сложения двух целочисленных операндов. Результат сложения помещается по адресу первого операнда. Если результат сложения выходит за границы операнда приемник (возникает переполнение), то учесть эту ситуацию следует путем анализа флага cf и последующего возможного применения команды adc. Например, сложим значения в регистре ax и области памяти ch. При сложении следует учесть возможность переполнения.

sub операнд_1,операнд_2 

выполнить вычитание операнд_1=операнд_2-операнд_1Команда sub используется для выполнения вычитания целочисленных операндов или для вычитания младших частей значений многобайтных операндов.

adc приемник,источник

Команда adc используется при сложении длинных двоичных чисел. Ее можно использовать как самостоятельно, так и совместно с командой add. При совместном использовании команды adc с командой add сложение младших байтов/слов/двойных слов осуществляется командой add, а уже старшие байты/слова/двойные слова складываются командой adc, учитывающей переносы из младших разрядов в старшие. Таким образом, команда adc значительно расширяет диапазон значений складываемых чисел. В приложении 7 приведен пример программы сложения двоичных чисел произвольной размерности.

sbb операнд_1,операнд_2

  • выполнить сложение операнд_2=операнд_2+(cf);
  • выполнить вычитание операнд_1=операнд_1-операнд_2;     
  • Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов.

     neg источник

  • выполнить вычитание (0 – источник) и поместить результат на место источника;
  • если источник=0, то его значение не меняется.
  • Команда используется для формирования двоичного дополнения операнда в памяти или регистре. Операция двоичного дополнения предполагает инвертирование всех разрядов операнда с последующим сложением операнда с двоичной единицей. Если операнд отрицательный, то операция neg над ним означает получение его модуля.

mul множитель_1 

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

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