Архитектура ЦП 8086: основные регистры, организация памяти
Программная модель МП представляется набором его регистров. Регистр является устройством временного хранения данных и используется с целью облегчения арифметических, логических и пересылочных операций.
Центральный процессор 8086 имеет четыре 16-битных регистра общего назначения AX, BX, CX, DX, четыре регистра-указателя SI, DI, BP и SP, четыре регистра сегментов CS, DS, ES, SS, один 16-битовый регистр флагов FLAGS и указатель программ IP (см. рис.2.1)
Рис. 2.1. Программная модель ЦП 8086
Регистр-аккумулятор AX используется для хранения промежуточных данных и результатов.
При базовых типах адресации регистр BX содержит адрес области памяти либо адрес, который суммируется для получения нового значения со смещением.
Регистр-счетчик CX предназначен для управления числом итераций в цикле или числом повторений в командах REP в строковых операциях.
Регистр данных DX используется как вторичный аккумулятор для хранения промежуточных данных и результатов.
Индексный регистр-источник SI применяется в качестве указателя адреса байта или слова в таких строковых командах, как LODS ("загрузить строку"), CMPS ("сравнить строку"), MOVS ("переслать строку"). При базово-индексной адресации содержимое регистра SI может суммироваться с содержимым регистра BX.
Индексный регистр-источник DI используется как указатель назначения для адреса байта или слова в строковых командах, таких как SCAS (сканировать строку), CMPS, MOVS, STOS (записать строку). При базово-индексной адресации для получения адреса операнда содержимое регистра DI может суммироваться с содержимым регистра BX.
Регистр-указатель стека SP применяется для работы с данными в стековых структурах. Его содержимое указывает адрес элемента на вершине стека, что удобно при организации обработки прерываний, процедур вызова подпрограммы и выхода из нее путем сохранения адреса возврата на вершине стека.
Регистр-указатель базы BP используется как дополнительный указатель для работы с данными в стековых структурах.
Программная модель МП представляется набором его регистров. Регистр является устройством временного хранения данных и используется с целью облегчения арифметических, логических и пересылочных операций.
Центральный процессор 8086 имеет четыре 16-битных регистра общего назначения AX, BX, CX, DX, четыре регистра-указателя SI, DI, BP и SP, четыре регистра сегментов CS, DS, ES, SS, один 16-битовый регистр флагов FLAGS и указатель программ IP (см. рис.2.1)
Рис. 2.1. Программная модель ЦП 8086
Регистр-аккумулятор AX используется для хранения промежуточных данных и результатов.
При базовых типах адресации регистр BX содержит адрес области памяти либо адрес, который суммируется для получения нового значения со смещением.
Регистр-счетчик CX предназначен для управления числом итераций в цикле или числом повторений в командах REP в строковых операциях.
Регистр данных DX используется как вторичный аккумулятор для хранения промежуточных данных и результатов.
Индексный регистр-источник SI применяется в качестве указателя адреса байта или слова в таких строковых командах, как LODS ("загрузить строку"), CMPS ("сравнить строку"), MOVS ("переслать строку"). При базово-индексной адресации содержимое регистра SI может суммироваться с содержимым регистра BX.
Индексный регистр-источник DI используется как указатель назначения для адреса байта или слова в строковых командах, таких как SCAS (сканировать строку), CMPS, MOVS, STOS (записать строку). При базово-индексной адресации для получения адреса операнда содержимое регистра DI может суммироваться с содержимым регистра BX.
Регистр-указатель стека SP применяется для работы с данными в стековых структурах. Его содержимое указывает адрес элемента на вершине стека, что удобно при организации обработки прерываний, процедур вызова подпрограммы и выхода из нее путем сохранения адреса возврата на вершине стека.
Регистр-указатель базы BP используется как дополнительный указатель для работы с данными в стековых структурах.
В режиме базово- индексной адресации содержимое регистра BP может суммироваться с содержимым регистров SI или DI.
Адресное пространство памяти процессора, откуда происходит выборка команд и данных, разделено на сегменты (области памяти) емкостью до 64 Кбайт каждый. Процессор 8086 имеет прямой доступ одновременно к четырем сегментам.
Начальный адрес сегмента может быть установлен прикладной программой и всегда должен начинаться с 16-байтовых границ. Базовый адрес сегмента получается делением действительного физического адреса начальной ячейки сегмента на 16. Базовые адреса содержатся в одном из четырех 16-битных сегментных регистров CS, DS, ES и SS. На расположение сегмента не накладывается никаких специальных ограничений, кроме одного: он должен быть на границе 16 байт (т.е. физический адрес начальной ячейки должен делиться на 16). Сегменты могут быть смежными, разделенными, перекрываться частично или полностью.
Регистры сегментов используются для идентификации текущего сегмента адресного пространства.
Регистр сегмента команд CS указывает сегмент, содержащий адрес текущей выполняемой программы.
Регистр сегмента данных DS содержит начало зоны адресов, которая в общем случае включает программно изменяемые таблицы и константы.
Регистр дополнительного сегмента ES указывает начало области памяти, которая обычно используется для запоминания промежуточных данных.
Регистр сегмента стека SS содержит начальный адрес стековой структуры в памяти ЭВМ.
Указатель команд IP содержит адрес следующей команды в сегменте памяти, определяемом содержимым регистра сегмента команд CS.
Регистр флагов FLAGS содержит информацию о текущем состоянии микропроцессора. Имеет шесть однобитовых флагов состояния, которые индицируют результаты выполнения арифметических и логических операций.
В режиме базово- индексной адресации содержимое регистра BP может суммироваться с содержимым регистров SI или DI.
Адресное пространство памяти процессора, откуда происходит выборка команд и данных, разделено на сегменты (области памяти) емкостью до 64 Кбайт каждый. Процессор 8086 имеет прямой доступ одновременно к четырем сегментам.
Начальный адрес сегмента может быть установлен прикладной программой и всегда должен начинаться с 16-байтовых границ. Базовый адрес сегмента получается делением действительного физического адреса начальной ячейки сегмента на 16. Базовые адреса содержатся в одном из четырех 16-битных сегментных регистров CS, DS, ES и SS. На расположение сегмента не накладывается никаких специальных ограничений, кроме одного: он должен быть на границе 16 байт (т.е. физический адрес начальной ячейки должен делиться на 16). Сегменты могут быть смежными, разделенными, перекрываться частично или полностью.
Регистры сегментов используются для идентификации текущего сегмента адресного пространства.
Регистр сегмента команд CS указывает сегмент, содержащий адрес текущей выполняемой программы.
Регистр сегмента данных DS содержит начало зоны адресов, которая в общем случае включает программно изменяемые таблицы и константы.
Регистр дополнительного сегмента ES указывает начало области памяти, которая обычно используется для запоминания промежуточных данных.
Регистр сегмента стека SS содержит начальный адрес стековой структуры в памяти ЭВМ.
Указатель команд IP содержит адрес следующей команды в сегменте памяти, определяемом содержимым регистра сегмента команд CS.
Регистр флагов FLAGS содержит информацию о текущем состоянии микропроцессора. Имеет шесть однобитовых флагов состояния, которые индицируют результаты выполнения арифметических и логических операций.