Программная модель процессора МП8086
Программная модель процессора отображает те блоки и устройства архитектуры процессора, к которым пользователь может обратиться по какой либо команде. В этом смысле слова, архитектура процессора представляет собой набор из основных внутренних регистров.
Регистры общего назначения.
Особенностью всех этих регистров является то, что их можно использовать в любых арифметических, логических и других операциях, но в то же время каждый из этих регистров имеет определенную специализацию. Например команды деления и умножения требуют чтобы первый операнд непременно находился в регистре АL или AХ или регистрах DX:AX.
Регистр АХ - основной регистр, используется при арифметических операциях над словами, в операциях ввода вывода, сдвига, обращения к памяти.
Регистр ВХ – базовый регистр, используется при арифметических операциях, адресации данных в памяти.
Регистр СХ – счётчик, используется как счётчик числа повторений цикла, при арифметических операциях. Регистр СL - используется как счётчик при операциях сдвига и циклического сдвига.
Регистр DX - регистр данных, используется при умножении и делении слов, в операциях ввода – вывода.
Регистры сегментов
Так как ЭВМ на базе микропроцессоров INTEL xx86 используют и сегментированные модели памяти, то для формирования адреса команды или данных в памяти требуется две составляющих – адрес начала сегмента и смещение искомого байта относительно начала сегмента. Начальные адреса сегментов и содержатся в сегментных регистрах.
Регистр CS – хранит адрес сегмента текущей исполняемой программы.
Регистр DS – хранит адрес текущего сегмента данных используемых в программе.
Регистр SS – хранит адрес сегмента стека.
Регистр ES – хранит адрес сегмента текущего дополнительного сегмента, который используется для работы над строками или хранения данных и программ.
Рисунок 3.4 – Программная модель процессора МП8086
Регистры указателей и индексов
Эти регистры можно использовать в любых арифметических, логических и прочих машинных операциях. В тоже время каждый из этих регистров имеет определённую специализацию.
Регистры SI и DI в совокупности с BP и BX можно использовать для изменения (модификации) адресов памяти командах пересылки и сравнения.
Регистр SР используется для работы со стэком, так как всегда указывает на вершину стэка
Регистр BP используется для (модификации) адресов ячеек стэка.
Указатель команд IP
Регистр IP - в этом регистре находится относительный адрес той команды, которая должна быть выполнена процессором следующей. Исполнительный адрес этой команды определяется по формуле:
CS *10Н + IP = АЕ
Изменение содержимого любого из этих регистров есть переход на другую команду или область памяти.
Регистр флагов EF
Специальный шестнадцати битовый регистр, у которого каждый бит это флаг, то есть указатель, принимающий значение 1 (флаг установлен), или значение 0 (флаг сброшен), в зависимости от результата операции.
Флаги отражают определённое состояния регистров процессора. В процессоре 8086 используется 9 флагов из 16 бит регистра. Шесть из них называют флагами состояний и три флагами управления. Флаги состояния устанавливаются многими командами процессора и используются программами для определения последующих действий. Хотя флаги имеют общую функцию, точный смысл и значение его зависит от последней выполненной команды.
Флаги состояний
CF- перенос. Устанавливается в 1, если результат предыдущей операции не уместился в приемнике и произошел перенос из старшего бита или требуется заём ( при вычитании), в противном случае – в 0.
PF – флаг четности. Устанавливается в 1, если младший байт результата предыдущей команды содержит четноечисло битов, равных 1, и в 0, ecли нечетное.
AF – флаг полу-переносаили вспомогательного переноса. Устанавливается в 1, если в результате предыдущей операции произошел перенос (или заем) из третьего бита в четвертый. Этот флаг используется автоматически командами двоично-десятичной коррекции
ZF – флаг нуля. Устанавливается в 1, если результат предыдущей команды равен нулю.
SF – флаг знака. Он всегда равен старшему биту результата. Устанавливается в 1, если результат отрицательный и в ноль – если положительный
ОF – флаг переполнения. Он устанавливается в 1, если результат предыдущей арифметической операции превысит одно или двухбайтовый диапазон для числам со знаком.. Например, если при сложении двух положительных чисел получается число со старшим битом, равным единице, то есть отрицательное, и наоборот.
Флаги управления
TF – флаг ловушки. Оп был предусмотрен для работы отладчиков, не использующих защищенный режим. Установка его к 1 приводит к тому, что после выполнения каждой программной команды, управление временно передастся отладчику.
IF – флаг прерывании. Сброс этого флага в 0 приводит к тому, что процессор перестает обрабатывать прерывания от внешних устройств (см. описание команды INT). Обычно его сбрасывают на короткое время для выполнения критических участков кода.
DF – флаг направления. Он контролирует поведение команд обработки строк: когда он установлен в 1, строки обрабатываются в сторону уменьшения адресов, когда DF = 0 - наоборот.
Лекция 8
Дата добавления: 2016-02-24; просмотров: 1913;