Примеры арифметических операций для целых чисел

Сначала простой случай, проведем сложение 61 + 1

  +
 

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

Теперь выполним сложение 127 + 1:

  +
 

В результате мы получаем число 128, т.е. старший 7-й разряд будет установлен в 1, это означает, что мы будем интерпретировать это число как отрицательное (-128), в регистре флагов при этом установится в 1 флаг знака (SF). Как видно, мы складывали два положительных числа и получили отрицательное, Этот эффект принято называть переполнением, так как сумма вышла за пределы диапазона чисел, представимых в дополнительном коде, при этом в регистре флагов установится в 1 флаг переполнения (Overflow flag, OF). Установка флага переполнения показывает, что сложение со знаком дает неверный результат.

Третий пример продемонстрирует сложение отрицательных чисел представленных, естественно, в дополнительном коде.

Суммируем (-1) + (-126)

  +
 

Получили -127, при этом сумма осталась отрицательной, но произошел перенос из самого старшего 7-го разряда числа, это значит, что в регистре флагов установится в 1 флаг переноса (Carry flag, CF), этот флаг показывает что, в результате операции из старшего бита происходит перенос при сложении или заем при вычитании.

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

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

Предварительные сведенья о шинах

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

Как уже было сказано в состав шины входят линии (набор которых также называется шиной) трех типов

- шину адреса,

- шина данных,

- шина управления.

Шина адреса. Выбор устройства или ячейки памяти, куда пересылаются или откуда считываются данные по шине данных, производит процессор. Каждое устройство или ячейка оперативной памяти имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении от процессора к оперативной памяти и устройствам (однонаправленная шина).

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

 

N =2I , где I — разрядность шины адреса.

 

Разрядность шины адреса является важной характеристикой процессора.

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

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

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

Процессоры x86

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

x86 (Intel 80x86) — общее название семейства микропроцессоров, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA, Transmeta, WinChip и т. д.).

Такое имя закрепилось за семейством этих микропроцессоров, так как названия ранних моделей процессоров Intel заканчивались на число 86 — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). Более поздние модели стали называть именами собственными (например, Pentium), чтобы иметь возможность зарегистрировать их как торговую марку.

Другое название для архитектуры этого типа – IA (Intel Architecture) или же IA-32.

Ведем еще одно понятие «Процессорное ядро» (как правило, для краткости его называют просто «ядро»), это конкретное воплощение архитектуры (т.е. «архитектуры в аппаратном смысле этого слова»), являющееся стандартом для целой серии процессоров. Архитектура описывает общие принципы построения процессора, ядро – конкретно, это архитектура, «обросшая» всевозможными параметрами и характеристиками. Практически любое наименование процессора хотя бы несколько раз за время своего существования «меняло» ядро. Например, общее название серии процессоров AMD — «Athlon XP» — это одна архитектура, но целых четыре ядра (Palomino, Thoroughbred, Barton, Thorton). Разные ядра, построенные на одной архитектуре, могут иметь, в том числе разное быстродействие.