Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

1. Архитектура микропроцессора Intel 8086, организация памяти с точки зрения микропроцессора 8086, методы адресации памяти, классификация системы команд микропроцессора 8086




1. АРХИТЕКТУРА МИКРОПРОЦЕССОРА INTEL 8086, ОРГАНИЗАЦИЯ ПАМЯТИ С ТОЧКИ ЗРЕНИЯ МИКРОПРОЦЕССОРА 8086, МЕТОДЫ АДРЕСАЦИИ ПАМЯТИ, КЛАССИФИКАЦИЯ СИСТЕМЫ КОМАНД МИКРОПРОЦЕССОРА 8086

1. 1  Архитектура микропроцессора Intel 8086

Архитектура микропроцессора (МП) с точки зрения программиста определяет те его ресурсы, которые программист использует при написании программ. К таким ресурсам в МП 8086 относятся регистры. Регистр МП представляет собой внутреннюю статическую ячейку памяти, предназначенную для хранения промежуточных данных, адресов, а также используемую командами МП для хранения входных и выходных данных и операндов. МП 8086 имеет 14 16-разрядных регистров, 4 из которых разбиты на две 8-битные половины – младшую (биты 0 – 7) и старшую (биты 8 – 15). Каждому регистру и его половинам присвоены символические обозначения (имена), которые используются при написании программ на языке ассемблера для обращения к регистрам. Доступ к регистрам осуществляется намного быстрее, чем к ячейкам оперативной памяти. Регистры МП 8086 схематически представлены на рис. 1.

По назначению и способу использования все регистры можно разделить на следующие группы:

1. Регистры общего назначения, которые делятся на две подгрупппы: регистры данных (AX, BX, CX, DX) и регистры указателей и индексов (SP, BP, SI, DI);

2. Сегментные регистры (CS, DS, SS, ES);

3. Указатель команд или инструкций (IP);

4. Регистр флагов (FLAGS).

Регистры первой группы могут использоваться для хранения любых данных или адресов. Функциональное назначение регистров не накладывает ограничений на ситуации, в которых эти регистры могут использоваться. Например, регистр DX, который относится к группе регистров данных, может использоваться как для хранения данных, так и для хранения адресов. Следует, однако, учитывать то, что некоторые команды МП 8086 (например, команды умножения и деления) используют для хранения своих данных и результатов выполнения строго определенные регистры, которые в команде не указываются, но используются.

 

Рис. 1. Регистры МП 8086

  

Первые четыре регистра (AX, BX, CX, DX) устроены таким образом, что возможен независимый доступ к их старшей (H) и младшей (L) половинам.

Ниже для каждого регистра описано его назначение и те ситуации, в которых чаще всего применяется регистр помимо хранения каких-либо промежуточных данных.

AX – умножение, деление, ввод и вывод слова;

AL – умножение, деление, ввод и вывод байта, двоично-десятичная арифметика;

AH – умножение и деление байта;

BX – трансляция, косвенная адресация, модификация;

CX – счетчик циклов и указатель длины в строковых операциях;

CL – логические и арифметические сдвиги;

DX – умножение и деление слова, ввод и вывод с косвенной адресацией;

BP – модификация;

SP – операции со стеком;

SI, DI – строковые операции, модификация.

Сегментные регистры являются особой группой. Значение этих регистров может быть изменено только командами их загрузки, в арифметических и логических командах эти регистры участвовать не могут. Значение регистра CS вообще не может быть изменено непосредственно командами загрузки, а только косвенно командами дальних переходов и командами вызова дальних процедур. Значения в сегментных регистрах используются только для обращения к ячейкам памяти и кодам программ.

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

Регистр флагов хранит управляющие биты, а также особенности результатов выполнения арифметических и логических команд (команды пересылки данных влияния на регистр флагов не оказывают). Каждый бит регистра флагов (флаг) характеризует присутствие той или иной особенности в результате выполнения команды, является управляющим битом для некоторых команд или отображает состояние МП. Назначение флагов:

CF (Carry Flag) – флаг переноса старшего бита в арифметических командах;

PF (Parity Flag) – флаг четности, устанавливается при четном числе единиц в результате;

AF (Auxiliary Flag) – флаг дополнительного переноса в тетраде (4 бита) для двоично-десятичной арифметики;

ZF (Zero Flag) – флаг нулевого результата, устанавливается когда значение результата равно 0.

SF (Sign Flag) – флаг знака, устанавливается когда старший бит результата равен 1 (признак отрицательного числа);

TF (Trap Flag) – флаг трассировки (пошагового режима), при его установке после выполнения каждой команды вызывается внутреннее прерывание процессора;

IF (Interrupt-enable Flag) – флаг управления прерываниями, при его установке разрешается выполнение маскируемых аппаратных прерываний;

DF (Direction Flag) – флаг управления направлением в строковых командах. При единичном значении флага DF значение индексных регистров, участвующих в строковых командах, автоматически уменьшается на размер операнда, при нулевом – увеличивается;

OF (Overflow Flag) – флаг переполнения, устанавливается, если результат арифметической команды не умещается в операнде назначения.

Установка флага означает запись 1 в бит, соответствующий этому флагу, сброс – запись 0. Флаги CF, PF, AF, ZF, SF, OF автоматически устанавливаются или сбрасываются процессором после выполнения команд, влияющих на эти флаги. Флаги TF, IF, DF устанавливаются или сбрасываются программистом с помощью специальных команд (исключение составляет механизм прерываний, когда флаги TF и IF модифицируется самим МП).  

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...