Лабораторная работа № 2 Центральный процессор. Работа с регистрами центрального процессора
Цель: Познакомиться с регистрами центрального процессора, их обозначением и назначением. Научиться распознавать состояние регистров с помощью программы DEBUG. Научиться устанавливать требуемое значение регистров.
Оборудование: ПК, ОС Windows, программа Debug, методические указания.
Требования к отчету по лабораторной работе:
Конспект теоретического материала.
Занесенные в тетрадь протокол результатов выполнения практического задания или распечатка.
Теоретический материал
Как известно, именно в процессоре происходит непосредственная обработка данных. Основными частями процессора являются арифметико-логическое устройство (АЛУ) и устройство управления (УУ). АЛУ служит для реализации всех тех операций, которые умеет выполнять процессор. Здесь выполняются все арифметические действия, а также логические операции, операции сравнения данных, сдвиги и т.д.
Для выполнения очередной команды данные (в виде двоичных чисел) загружаются в один из регистров процессора. В процессорах семейства Intel имеется четыре основных регистра: АХ (аккумулятор), ВХ (база), СХ (счетчик) и DХ (данные). Большая часть работы компьютера ведется с помощью этих регистров. Программист может использовать их по своему усмотрению для временного хранения любых объектов (данных или адресов) и выполнения над ними требуемых операций. При этом регистры допускают независимое обращение к старшим (AH, BH, CH и DH) и младшим (AL, BL, CL и DL) половинам
Кроме того, в процессорах семейства Intel для хранения адресов выполняемых команд и адресов загружаемых данных существуют четыре сегментных регистра (CS, DS, SS, ЕS) и пять регистров смещения (IP, SP, BP, SI, DI). Их обозначение и название приведены в таблице:
Обозначение регистра
|
Название
|
Обозначение регистра
|
Название
|
СS
|
Сегмент кода (программы)
|
SР
|
Указатель стека
|
DS
|
Сегмент данных
|
ВР
|
Указатель базы
|
SS
|
Сегмент стека
|
SI
|
Индекс источника
|
ЕS
|
Дополнительный сегмент
|
DI |
Индекс назначения
|
IР
|
Указатель команд
|
|
|
Существуют еще несколько вспомогательных регистров (флаговый регистр, регистры источника и приемника и др.), а также регистры математического сопроцессора (в нем производятся ускоренные операции над вещественными числами) и др.
Флаговый регистр. представляет собой набор отдельных регистров-битов, называемых флагами. Флаги логически можно объединить в две группы:
шесть статусных флагов, в которые заносится информация о состоянии процессора (обычно указывающая на то, что произошло при выполнении арифметических операций и операций сравнения),
и три управляющих флага, которые управляют работой некоторых команд процессора.
Характеристики всех флагов приведены в таблице 1:
Наименование флага
|
Назначение
|
Обозначение
|
Значение, когда установлен
|
Значение, когда сброшен
|
Статусные флаги
|
||||
Флаг переноса (да/нет) |
Указывает на наличие переноса при выполнении арифметических операций |
СF
|
СY
|
NС
|
Флаг переполнения (да/нет)
|
Указывает на переполнение при выполнении арифметических операций со знаковыми числами
|
ОF
|
ОV
|
NV
|
Флаг нуля (да/нет)
|
Указывает на нулевой результат при выполнении арифметических операций или на равенство при операциях сравнения
|
ZF
|
ZR
|
NZ
|
Флаг знака (отрицательный/ положительный)
|
Указывает на отрицательный результат при выполнении арифметических операций или устанавливает признак неравенства при операциях сравнения
|
SF
|
NG
|
PL
|
Флаг четности (четное / нечетное )
|
Указывает на наличие в операнде четного числа битов, равных 1, после выполнения команды
|
РF
|
РЕ
|
РО
|
Флаг арифметического переноса (да/нет)
|
Указывает на необходимость корректировки после выполнения арифметических операций с числами, представленными в виде двоично-десятичных кодов
|
АF
|
АС
|
NА
|
Управляющие флаги
|
||||
Флаг направления (уменьшение/ увеличение)
|
Управляет способом изменения адресов при операциях при побайтовой обработке данных, например, при работе со строками
|
DF
|
DN
|
UP
|
Флаг прерывания (возможно/ невозможно)
|
Управляет процессом блокировки и разблокировки прерываний
|
IF |
EI |
DI |
Флаг трассировки
|
Управляет пошаговым выполнением операций
|
ТF
|
|
|
Для работы с регистрами процессора используется входящая в состав операционной системы Windows программа DEBUG (отладчик). Эта программа позволяет осуществить побайтное тестирование и побайтное редактирование одного мегабайта памяти. Основные функции этой программы:
— загрузка файлов, содержащих программы или данные, в память компьютера;
— вывод на экран и корректировка содержимого регистров процессора;
— вывод на экран содержимого участков памяти в шестнадцатеричном коде и в символьном виде в соответствии с системой кодировки ASCII;
— изменение содержимого участков памяти и портов;
— перенос блоков данных из одного места основной памяти в другое;
— генерация и вывод на экран команд ассемблера по коду, загруженному в память компьютера;
— сохранение содержимого участков памяти на гибких и жестких дисках;
— выполнение с помощью встроенного калькулятора шестнадцатеричного сложения и вычитания.