Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по архитектуре ЭВМ.doc
Скачиваний:
46
Добавлен:
02.05.2014
Размер:
238.59 Кб
Скачать

3. Регистровая структура процессоров Intel ix86: регистры общего назначения, сегментные регистры, регистр флагов.

  • Регистровая структура процессоров Intel ix86

EAX 31|_______15|__AH__8|AX|7__AL__|0 аккумулятор |

EBX 31|_______15|__BH__8|BX|7__BL__|0 база | 32- разрядные регистры

ECX 31|_______15|__CH__8|CX|7__CL__|0 счётчик |

EDX 31|_______15|__DH__8|DX|7__DL__|0 регистр данных |

ESI 31|_______15|________|SI|_________|0 Индекс источника | Используються в строковых операциях

EDI 31|_______15|________|DI|_________|0 Индекс приёмника |

EBP 31|_______15|________|BP|_________|0 Указатель базы | Используються при работе со стеком

ESP 31|_______15|________|SP|_________|0 Указатель стека |

AX, BX, CX, DX – 16 разрядные регистры имеют старший и младший байт.

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

Команда Push ax – помещает содержимое AX в стек, Push BX, Push CX, Чтобы получить AX? Необходимо сначала взять CX и BX потом AX. POP CX, POP BX, POP AX – Pop считывание данных из стека

Push a – помещает все регистры общего назначения в стек. Pop – обратная команда.

Пример:

mov AX,3 ; mov BX ,4; mul AX,BX; mov CX,AX; xor AX,AX

Начиная с 386 процессора представляют 16 основных регистров для использования в пользовательских программах. +11 регистров для работы с мультимедиями (MMX multimedia Extension) и числами с плавающей запятой. Помимо основных регистров доступны также: регистры управления памятью CDTR, IDTR, TR, LDTR;

регистры управления CR0,CR1 … CR4, отладочные регистры DR0 … DR7? И регистры общего назначения EAX, EBX, ECE, EDX, ESI, EDI, EBP, ESP.

Сегментные регистры. При использовании сегментированных моделей памяти. Для формирования любого адреса необходимы 2 числа, адрес начала сегмента и смещение начального байта относительно этого сегмента. В без сегментной модели памяти адреса начала всех сегментов равны. Т.к. сегмент способны оказаться где угодно, то программа, обращаясь к ним, применяет вместо настоящего адреса начала сигмента 16-битное число-селектор. В процессорах Intel предусмотрено 6 16-битных регистров: CS, DS, ES, FS, GS,SS. Регистры CS и SS отвечают за сегмент двух типов – сегмент кода и сегмент стека.

Регистр Флагов (FLAGS)

15|_0_|_NT_|_IO PL_|_OF_|_DF_|_IF_|_TF_|_SF_|_ZF_|_0_|_AF_|_0_|_PF_|_1_|_CF_|0

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

  • CF – флаг переноса, устанавливается в 1 если результат предыдущей операции не изменяется в приёмнике, т.е. произошёл перенос из старшего бита.

  • PF – флаг четности 1 если младший байт результата предыдущей команды содержит чётное число битов равных 1

  • AF – флаг полпереноса вспомогательного переноса; 1, – если в результате предыдущее операции произошел перенос из 3-его бита в 4-ый; автоматически используется командами двоичной и десятичной коррекции

  • ZF – флаг нуля, если 1 то результат предыдущей операции 0.

  • SF – флаг знака – всегда равен старшему биту результата

  • ЕА – флаг ловушки, предусмотрен для работы отладчиков не использующих защищённый режим. Установка его в 1 приводит к тому, что после выполнения каждой команды управление временно передается отладчику, вызывается первое прерывание INT 1.

  • DF - флаг направлений, контролирует поведение команд обработки строк. При единичном его значении обрабатываться 1 сторону уменьшения адресов, при 0 – наоборот.

  • OF – флаг переполнении, 1 если результат предыдущей арифметической операции над числами со знаком выходит за допустимый для них предел.

  • IO PL эти два флага обрабатывают уровень привилегий ввода вывода.

  • NT – означает о вложенной задаче, применяется в защищённом режиме.