- •Введение
- •Логические и арифметические основы и принципы работы эвм
- •1.1 История эвм
- •1.2 Логические основы
- •1.3 Арифметические основы
- •1.4 Структура однопрограммной эвм
- •1.5 Система кодирования команд. Способ адресации
- •1.6 Цикл выполнения команд
- •1.7 Основы схематической реализации эвм
- •1.8 Архитектура современных компьютеров
- •Заключение
1.3 Арифметические основы
Способ представления изображения произвольных чисел с помощью некоторого конечного множества символов назовем системой счисления .
В повседневной практике мы пользуемся, как правило, десятичной системой счисления.
римская система счета, которая использует символы: I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000.
Эта система является особой и применяется редко (циферблат, архитектура, история и т.д.)
Системы счисления принято делить на:
Позиционные.
Непозиционные.
Символические.
В символических системах каждому числу ставится в соответствие свой символ. Эти системы не находят широкого применения в силу естественной их ограниченности (алхимия, кодированные сообщения) -бесчисленного множества символов, которое требуется для изображения всех возможных чисел.
В позиционных системах связь значимости числа и его изображения от позиции.
Позиция - некоторое место, в котором может быть представлен лишь один символ.
Примером позиционной системы счисления является десятичная система.
В этой системе число представляется в виде полинома " n " степени, а изображается совокупностью некоторых символов, каждый из которых имеет различный вес в зависимости от позиции, которую он занимает.
a4a3a2a1 - число; a1, a2, a3, a4 - символы.
Всем позициям приписывается различный вес, который чаще всего выбирается как целая степень основания системы.
Основание системы счисления - число, которое является мощностью множества различных символов, допустимых в каждой позиции числа.
Так для десятичной системы допускаемыми являются символы: 0, 1, 2, 3,..., 9.
Обозначим через " p " основание системы счисления. Тогда веса позиций числа могут быть представлены так:
... p3 p2 p1 p0.
Само число, изображение которого имеет вид, например, a3a2a1a0 может быть представлено так:
a0p0 + a1p1 + a2p2 + a3p3 - это развернутая запись числа в позиционной системе.
Любое число X в позиционной системе счисления можно представить в виде:
X=+pm
где
m - число позиций или разрядов, отведенное для изображения целой части числа.
n - общее число разрядов в числе.
ai - любой допустимый символ в разряде, т.е. ai = {0, 1, 2,..., p-1}.
p - основание системы счисления.
Применяются два основных способа представления чисел - с фиксированной и плавающей запятой. Большинство универсальных ЭВМ работает с числами, представленными с плавающей запятой, а большинство специализированных – с фиксированной запятой.
Однако целый ряд машин работает с числами в этих двух форматах.
В общем виде способ представления чисел сильно влияет на характер программирования. Так, программирование для ЭВМ, работающих в системе с фиксированной запятой, значительно усложняется, поскольку помимо алгоритмических трудностей этот процесс требует ещё отслеживания положения запятой.
Фиксированная запятая
Оговоримся, что разрядная сетка машины имеет постоянное число разрядов - n.
При представлении чисел с фиксированной запятой считают, что запятая всегда находится перед старшим разрядом, а все числа, которые участвуют в вычислениях, считаются по абсолютной величине меньше единицы:
|X| < 1
Введём две характеристики чисел: диапазон изменения и точность представления.
Диапазон изменения характеризуется теми пределами, в которых могут находиться числа, с которыми оперирует машина.
Отличное от нуля самое малое число:
Таким образом, диапазон чисел, с которыми работает ЭВМ, есть:
|X|min <= |X| <= |X|max
2-n <= |X| <= 1 - 2-n
Иными словами, числа, которые выходят за диапазон изменения, в ЭВМ не могут быть представлены точно. Если
|X| < |X|min = 2-n,
то такое число воспринимается как нуль.
Если:
|X| > |X|max = 1- 2-n,
то такое число воспринимается как бесконечно большое. Этим двум случаям соответствуют понятия машинного нуля и машинной бесконечности.
В ЭВМ с плавающей запятой число представляется в виде:
X = ± Mx * q±p,
где: Mx - мантисса числа;
q - основание системы счисления;
p - порядок.
Разрядная сетка машины принимает следующий вид:
Это лишь условное изображение основных слогов в числе. Заметим, что в реальной ЭВМ может быть принят любой другой порядок расположения.
Пусть " m " разрядов отведено под изображение мантиссы, а " k " разрядов под изображение порядка. Тогда для двоичной системы и нормализованного вида числа:
q = 2;
0,1 <= Mx< 1 - нормализованная мантисса.
То есть диапазон чисел:
Теоретически " плавающая запятая " имеет преимущества перед " фиксированной ". Но соответствующее устройство получается намного сложнее. К тому же специфика выполнения операций с плавающей запятой требует большего числа микроопераций, что приводит к снижению быстродействия ЭВМ. Однако " плавающая запятая " снимает с программиста обязанность отслеживать положение запятой в вычислениях и значительно упрощает сам процесс программирования вычислительных задач.
Основной особенностью различных методов выполнения арифметических операций является то, что любая операция (сложение,вычитание, умножение, деление и др.) сводится к некоторой последовательности микроопераций, таких как:
сложение
сдвиг
передача
преобразование кодов.
Сложение выполняется по правилам сложения чисел в позиционных системах счисления.
То есть эта операция выполняется поразрядно, а возникающий в младших разрядах перенос направляется в старшие разряды.
Пример:
0,101101 1-ое слагаемое
+0,000101 2-ое слагаемое
________
0,101000 сумма
0,00101 перенос
________
0,100010 сумма
0,01 перенос
________
0,110010 сумма
Различают два вида микрооперации сдвига:
логический сдвиг;
арифметический сдвиг;
Логический сдвиг приводит к смещению всех разрядов числа, включая и знак, влево или вправо. При этом освобождающиеся разряды заполняются нулями или единицами.
Арифметический сдвиг выполняется над частью числа, часть сдвинутых разрядов теряется. (Очевидно, знаковый разряд должен исключаться из рассмотрения).
Передача предполагает, что некоторый код (число) записывается в соответствующее устройство и вытесняет тот код, который там находился до передачи.
Различают два вида передач:
запись (с разрушением ранее записанной информации);
чтение (без разрушения).
Функция, выполняемая над передаваемыми числами, называется преобразованием. Чаще других в арифметических основах рассматривают инвертирование кода.
Это
поразрядная микрооперация
,
которая выполняется над всеми разрядами
одновременно[3].
