Краткое описание инструмента и ремесла программирования. Степанов А.Г - 15 стр.

UptoLike

15
Аккумулятор
База
Счетчик
Данные
DH
CH
BH
AH
BL
CL
DL
AL
Регистры общего
назначения
BX
AX
CX
DX
Указатель базы
Указатель стека
Индекс источника
Индекс приемника
Указательные и
индексные регистры
BP
SP
SI
DI
Данные
Код
Стек
Дополнительные
данные
Сегментные регистры
DS
CS
SS
ES
Флаги процессора
Счетчик команд
Счетчик команд и
флажки
FLAGS
IP
S Z A P C
N
T
I
O
P
L
O D I T
Отладка
Знак
Ноль
Перенос мл.
байта
Паритет
Перенос
Направление
Переполнение
Разрешение
прерывания
Защита и
мультизадачность
Регистры процессора
Рис. 1.7. Регистры процессора
Пусть в процессе обращения к памяти было считано число,
соответствующее команде Нет операции. Такая команда обычно есть в
системе команд любого процессора и предназначена, например, для того,
чтобы «забить» в памяти ненужные команды старой программы. Определив эту
команду, дешифратор команд приходит к заключению, что текущая команда
выполнена и снова активизирует цикл обращения к памяти, т.е. подключает
счетчик команд к шине адреса, считывает число теперь уже из следующей
ячейки памяти, запоминает его, отключает счетчик команд от шины адреса и
снова увеличивает его содержимое на единицу.
Предположим теперь, что в процессе обращения к памяти было считано
число, соответствующее команде ОчисткаZ, имеющей смысл обнуления
внутреннего флажка процессора Z. Определив эту команду, устройство
управления принудительно записывает нуль в триггер Z и снова переходит к
считыванию следующей команды из памяти.
Допустим, что в процессе считывания очередной команды из памяти
была получена команда Проверка, назначение которойопределить,
находится ли содержимое некоторого регистра процессора или ячейки памяти в
состоянии 0 (все триггеры в состоянии 0) или нет. В коде этой команды
зашифрован номер регистра или ячейки памяти. Если производится проверка
содержимого регистра, то устройство управления обращается к нему и в
соответствии с его состоянием либо устанавливает, либо не устанавливает
флажок Z. В случае задания проверки ячейки памяти, устройство управления
выставляет на шине адреса адрес проверяемой ячейки памяти, считывает ее
содержимое и в соответствии с ним устанавливает или не устанавливает
триггер Z, после чего начинается считывание следующей команды из памяти.
Будем считать, что очередная команда программы есть команда Очистка
ячейки. Выполняя ее, устройство управления выставит на шине адреса
расшифрованный из кода команды
адрес некоторой ячейки памяти, установит
на шине данных нулевую комбинацию и выставит сигнал Запись. Если
выставленный адрес соответствует адресу ячейки ОЗУ, то в эту ячейку
запишется нулевая комбинация. Очевидно, что попытка записать нуль в ячейку