Разработка структуры гипотетического микропроцессора и центральной части МЭВМ на его базе. Эмуляция выполнения команд

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

массива данных. Возможно обращение к первому(BL) или второму(BH) байтам или к обоим вместе(BX);

-ECX - используется как счетчик при организации циклов. Возможно обращение к первому(CL) или второму(CH) байтам или к обоим вместе(CX);

-EDX - регистр данных. В командах умножения и деления сохраняет старшую половину 64-разрядных операндов, а в командах ввода-вывода содержит адрес внешних устройств. Возможно обращение к первому(DL) или второму(DH) байтам или к обоим вместе(DX).

Все регистры общего назначения 32-разрядные.

Регистры указателей ESP и EBP используются для работы со стековым сегментом: ESP - содержит адрес вершины стека, EBP - хранит адрес начального элемента массива данных в стековом сегменте. Эти регистры 32-разрядные. Возможно обращение к младшим 2-м байтам: SP - для регистра ESP и BP - для регистра EBP.

Регистры индексов используются для доступа к элементам массива: ESI - регистр индекса источника, хранит смещение адреса для чтения, EDI - регистр индекса приемника, хранит смещение адреса для записи. Эти регистры также 32-разрядные. Возможно обращение к младшим 2-м байтам: SI - для регистра ESI и DI - для регистра EDI.

Сегментные регистры индексируют глобальную дескрипторную таблицу, в записях которой хранятся базовые адреса сегментов. Используется четыре 16-разрядных сегментных регистра для адресации логических частей программы: CS - регистр сегмента команд, косвенно (через глобальную дескрипторную таблицу) адресует сегмент памяти, в котором хранится выполняемая программа; DS - регистр сегмента данных, косвенно адресует сегмент памяти, содержащий обрабатываемые данные; SS - регистр сегмента стека, косвенно адресует сегмент памяти, называемый сегментом, данные в котором хранятся по принципу LIFO; ES - косвенно адресует регистр дополнительного сегмента, в котором может храниться информация.

Регистр адреса команды EIP - хранит 32-разрядный адрес очередной команды, которая должна извлекаться из сегмента команд памяти.

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

РO - регистр, который используется для обмена между устройством сегментации и внутренней шиной процессора.

БА - буферный регистр адреса, БД - буферный регистр данных. Используются для обмена с памятью.

Регистры BR1 и BR2 используются для временного хранения операндов арифметико-логических операций.

Регистр флагов содержит 13 признаков (флагов), характеризующих состояние микропроцессора. Шесть флагов устанавливается в соответствии с результатом выполненной в АЛУ операцией.

VM - обеспечивает режим виртуального 8086 внутри режима виртуальной адресации. При VM = 1 МП будет переключен в режим виртуального 8086, при этом управление перезагрузкой сегментов будет осуществляться подобно 8086, но с исключением 13 недействительных привилегированных команд. VM может быть установлен в режиме виртуальной адресации командой IRET (если уровень приоритета = 0) и задача переключается на более низший уровень.

RF - признак используется совместно с отладочными регистрами контрольных точек (прерываний) или пошагового режима. С его помощью проверяется ход выполнения команд в отладочном режиме (процесс отладки). Если установлен RF (=1), то это позволяет игнорировать ошибки, возникающие при отладке до следующей команды. RF автоматически сбрасывается в 0 при успешном выполнении команды.

NT - признак гнездования задач используется только в режиме виртуальной адресации. NT=1 указывает, что текущая задача является вложенной по отношению к другой задаче. Этот бит устанавливается и сбрасывается при вызове других задач. NT проверяется командой IRET для определения внутри заданного или внешнего по отношению к данной задаче возврата. Команды POPF и IRET будут устанавливать NT в соответствии с тем, что хранится в стеке для любого уровня привилегированности.

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

OF - флаг переполнения, устанавливается в 1, если в результате выполнения операций происходит переполнение разрядной сетки (если перенос из (n-2)-го разряда в(n-1) не совпадает с переносом из (n-1)-го разряда в несуществующий n-ый).- флаг направления передачи, определяет способ изменения адресов источников/приемников кода в командах работы со строками данных. Если DF равен 0, то адреса наращиваются, 1 - уменьшаются.- флаг разрешения прерывания, сброшенный в состояние 0, запрещает обработку запроса на прерывание, а в 1 разрешает ее.- флаг пошагового режима, в 1 - задает специальный режим покомандного выполнения, в котором после обработки каждой команды генерируется программное прерывание.

SF - флаг знака, устанавливается равным старшему (n-1)-му разряду кода результата. При выполнении операций над числами со знаком он соответствует знаку результата, если результат >= 0, будет сброшен в 0, если результат < 0 - будет установлен в 1.

ZF - флаг нулевого результата, принимает единичное значение, если все разряды результата нулевые; если хотя бы один разряд результата отличен от 0, ZF сбрасывается в 0. - флаг переноса, устанавливается в 1, если в результате выполнения операции возник перенос из (n-1)-го разряда результата в несуществующий старший n-й разряд или потребовался заем несуществующего n-го разряда. - флаг паритета, дополняет код результата до нечетного, т.е. устанавливается в 1, если количество единиц в коде резул?/p>