Сложение шестнадцатеричных чисел

Тема 2. Архитектура процессора
В состав процессора входят следующие узлы:
1. Устройство управления.
2. Арифметическо-логическое устройство.
3. Программно-доступные регистры.
4. Регистр счетчик команд.
5. Блок формирования адресов.
6. Кэш-память.
Устройство управления.
Устройство управления предназначено для управления всеми узлами процессора. Устройство управления подключается к системной шине компьютера и передает на системную шину управляющие сигналы для устройств компьютера.
Арифметическо-логическое устройство (АЛУ).
АЛУ предназначено для выполнения простейших арифметических и логических операций над числами. К простейшим арифметическим операциям относятся: сложение, вычитание, умножение и деление. К логическим операциям относятся например операции сравнения чисел на больше, меньше или равно.
Программно-доступные регистры.
Программно-доступные регистры – это внутренняя оперативная память процессора.
Программно-доступные регистры делятся на три группы:
1. Регистры общего назначения (РОНы).
2. Сегментные регистры.
3. Регистр флагов.
Регистры общего назначения.
РОНы могут свободно использоваться программистом в компьютерных программах. РОНы подразделяются на две группы: информационные регистры и индексные регистры.
Информационные регистры.
Информационные регистры предназначены для временного хранения данных различного назначения.
1. AX – регистр аккумулятор. Этот регистр используется для временного хранения данных и промежуточных результатов вычислений.
2. BX – базовый регистр. Этот регистр может использоваться как AX. Кроме того, регистр может использоваться для хранения адреса области оперативной памяти, с которой должен работать процессор.
Адрес – это номер ячейки оперативной памяти, с которой начинается определенная область ячеек. В каждой ячейке оперативной памяти хранится один Байт информации.
3. CX – регистр счетчик. Этот регистр может использоваться как AX. Кроме того, регистр может быть использован для организации циклов, т.е. для многократных повторений некоторой последовательности команд.
4. DX – регистр данных. Используется в качестве вторичного аккумулятора для временного хранения данных и промежуточных результатов вычислений.
Индексные регистры.
Индексные регистры предназначены для определения адресов ячеек оперативной памяти, с которыми должен обмениваться информацией процессор при выполнении определенных компьютерных команд.
1. SI – индекс источника. Этот регистр определяет адрес ячейки памяти, из которой данные будут загружаться в процессор при выполнении текущей команды. Такая ячейка называется – ячейка-источник. При выполнении следующей команды содержимое регистра SI автоматически увеличивается на 1, и процессор получает данные из следующей ячейки оперативной памяти.
2. DI – индекс приемника. Этот регистр определяет адрес ячейки памяти, в которую процессор будет записывать данные при выполнении текущей команды. Такая ячейка называется – ячейка-приемник. При выполнении следующей команды содержимое регистра DI автоматически увеличивается на 1, и процессор записывает данные в следующую ячейку оперативной памяти.
3. SP –указатель стека. Этот регистр предназначен для работы со стековой памятью.
Стековая память – это специальная область памяти, которая создается в оперативной памяти компьютера для каждой программы. Стековая память используется для организации программных прерываний в работе процессора.
Программное прерывание – временное прекращение выполнения процессором основной программы и переход его к выполнению другой программы (подпрограммы). После завершения подпрограммы процессор возвращается к продолжению основной программы.
В стековую память данные записываются, начиная с ячейки с максимальным номером. Работа стековой памяти организуется по правилу: то, что записывается первым, считывается последним.
Пример организации стековой памяти:
|
№ ячейки стека |
Данные |
|
0 |
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
-//- |
|
5 |
-//- |
|
. |
-//- |
|
. |
-//- |
|
. |
-//- |
|
n-2 |
-//- |
|
n-1 |
-//- |
|
n |
-//- |
Данные в ячейку 3 могут быть записаны только при условии, что ячейки с 4 по n заполнены. При считывании из стека данные сначала будут считываться из 4 ячейки, затем из 5 и т.д. При этом ячейки стековой памяти будут освобождаться.
Запись в ячейку стека происходит при программном прерывании. При этом в ячейку записывается адрес возврата.
Адрес возврата – это адрес команды основной программы, на которой произошло прерывание.
После записи адреса возврата процессор переходит к выполнению подпрограммы.
После окончания подпрограммы, процессор считывает адрес возврата из стековой памяти, что необходимо, чтобы определить команду основной программы, на которой произошло прерывание и продолжить выполнение основной программы.
Таким образом, каждая запись в стековой памяти соответствует конкретному программному прерыванию.
Верхняя заполненная ячейка стека, для нашего примера – ячейка 4, называется вершина стека.
Регистр SP содержит адрес вершины стека, для нашего примера SP = 4. При новой записи в стек содержимое SP уменьшится на 1, вершиной стека станет ячейка 3. При чтении из стека содержимое SP увеличится на 1, ячейка 4 очистится, а ячейка 5 станет вершиной стека.
4. BP – указатель базы. Этот регистр используется при работе со стековой памятью. В этом регистре указывается адрес базовой ячейки стековой памяти.
Базовая ячейка стека – это ячейка, с которой начинается область стековой памяти. В рассмотренном выше примере базовой ячейкой стека является ячейка 0 (BP = 0). Изменяя регистр BP программист имеет возможность размещать стековую память в различных областях оперативной памяти.