Программная модель процессора 8086
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

     Программная модель процессора (рисунок 1.3) отображает те блоки и устройства архитектуры процессора, к которым пользователь может обратиться по какой-либо команде. В этом смысле слова, архитектура процессора представляет собой набор из четырнадцати основных внутренних регистров. Регистр это элементарное устройство способное принимать, хранить, преобразовывать и выдавать на внутреннюю шину данные. Все регистры процессора 16 разрядные. Каждый разряд хранит один бит информации.

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

· регистры общего назначения (АХ, ВХ, СХ, DХ);

· регистры указателей и индексов (SI, DI, BP, SP);

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

· указатель команд (IP);

· регистр (или указатель) флагов (EF).

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

АХ – (accumulator) аккумулятор;     ВХ – (base) база; 

СХ – (counter) счетчик;                    DX – (date) данные;

SI – (source index) индекс источника; CS – (code segment) сегмент команд;

DI– (destination index) индексприемника; SS– (stack segment) сегмент стэка;

BP– (base pointer) указатель базы;          DS– (date segment) сегмент данных;

 ES – (extra segment) дополнительный сегмент;

IP– (instruction pointer) указатель команд; FP – (flags pointer) указатель флагов;                   

        15        8  7         0        номера разрядов в регистрах      

 AX

 BX

 CX

 DX

AH AL

Аккумулятор     

Базовый регистр        Регистры общего            

Счётчик                         назначения

 Регистр данных

BH BL
CH CL
DH DL

 

15   0

 SI

 DI

 BP

 SP

 

Индекс источника         Регистры

Индекс приемника       указателей

Указатель базы                 и индексов

Указатель стека                        

 
 
 

 

        15                       0

 CS

 DS

 SS

 ES

 

Регистр сегмента команд                   Сегмент-            Регистр сегмента данных                   ные                 

Регистр сегмента стека                    регистры               Регистр дополнительного сегмента               

 
 
 


     15                      0    

IP    Указатель команд

 

15                               0

   Указатель (регистр) флагов

 

Рисунок 1.3-Программная модель процессора Intel 8086


Регистры общего назначения

 

     Особенностью всех этих регистров является то, что их можно использовать в любых арифметических, логических и других операциях, но в то же время каждый из этих регистров имеет определенную специализацию. Например команды деления и умножения требуют чтобы первый операнд непременно находился в регистре АL или AХ или регистрах DX:AX. Четыре 16–разрядных регистра AX, BX, CX, DX, образованны из двух 8-битовых регистров AL, AH, BL, BH, CL, CH, DL, DH. Буквы L и H означают младшие (low-order) и старшие (high-order) байты 16-битовых регистров. К каждому из этих байтовых регистров можно обратиться по определённой команде.

Регистры SI, DI, BP, SP не разделены пополам, поэтому к ним можно обращаться только как к 16-разрядным структурам.

     ŸРегистр АХ - основной регистр процессора, используется при всех арифметических и логических операциях над словами, в операциях ввода, вывода и сдвига. В операциях умножения в этом регистре хранится множимое, а в операциях деления - делимое.

     ŸРегистр ВХ – базовый регистр, используется при арифметических операциях, а так же для адресации данных в памяти.

     ŸРегистр СХ – счётчик, используется как счётчик числа повторений цикла, а также при арифметических операциях. Регистр СL - используется как счётчик при операциях сдвига и циклического сдвига на несколько битов.

     ŸРегистр DX - регистр данных, используется при умножении и делении слов, в операциях ввода–вывода для хранения адреса выводимого текста или самого текста.

 

Сегментные регистры

 

     ЭВМ на базе микропроцессоров INTEL x86 используют в основном сегментированные модели памяти. В этом случае программы и данные хранятся в отдельных областях памяти – сегментах, размер которых колеблется от 16 байт до 64 Кбайт. Каждый сегмент имеет адрес расположения его в памяти. Этот адрес 16-битный и хранится в сегментном регистре. Поэтому для формирования адреса байта в памяти нужны два числа – адрес начала сегмента и смещение искомого байта относительно начала сегмента. Четыре сегментных регистра процессора хранят четыре начальных адреса различных сегментов.

     ŸРегистр сегмента CS – хранит адрес сегмента кода текущей исполняемой программы.

     ŸРегистр сегмента DS – хранит адрес текущего сегмента данных используемых в программе.

     ŸРегистр сегмента SS – хранит адрес сегмента стека.

     Стек-это сегмент памяти, используемый как операционной системой для хранения характеристик программы, так и программистом для временного хранения данных, адресов, содержимого регистров МП. Особенностью стека является то, что в командах обращения к стэку адрес ячейки памяти сегмента явно не указывается, а процессор формирует адрес таким образом, что запись и чтение осуществляется только из вершины стека. Обращение к произвольной ячейке стека осуществляется специальным образом с использованием регистра ВР.

   ŸРегистр дополнительного сегмента ES – хранит адрес сегмента текущего дополнительного сегмента, который используется для работы над строками или хранения данных и программ.

Дата: 2018-11-18, просмотров: 467.