Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) ( 20 ) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (20)

функционально микропроцессор состоит из двух функционально автономных устройств: шинного интерфейса и операционного (исполнительного) устройства. Шинный интерфейс содержит секцию управления, 6-байтную очередь команд (эквивалент регистра команд), 4 сегментных регистра и программный счетчик (называемый указателем команд IP). Это устройство обеспечивает взаимодействие с остальными компонентами ЭВМ и нахождение в очереди команд достаточного числа байт. Как только в очереди фиксируются два свободных байта, инициируется обращение к программной памяти. Операционное устройство выполняют все преобразования данных, последовательно считывая и интерпретируя байты из очереди команд.

Микропроцессор допускает два режима системной конфигурации: максимальный и минимальный, которые определяются уровнем сигнала на входе MN/MX. В зависимости от выбранного режима изменяется интерпретация 8 управляющих сигналов. При минимальной конфигурации управляющие сигналы для памяти и периферийных устройств генерирует сам микропроцессор, а в максимальном режиме необходим специальный контроллер шины. Для реализации мультипроцессорных систем предусмотрен выходной сигнал LOCK блокировки шины. При низком уровне этого сигнала блокируется (запрещается) доступ к системной шине другим компонентам системы. Формированием этого сигнала управляет пользователь, применяя в программах префикс LOCK.

Память представляет собой массив 1М байт, причем любые два смежных байта образуют слово, т. е. слово может начинаться с четного или нечетного адреса. В первом случае слово передается за один цикл шины, а во втором требуется два цикла шины, поэтому целесообразно размещать слова данных по четным адресам. Длина команд составляет 1-6 байт, и их размещение в памяти на производительность не влияет. Микропроцессор оперирует 16-битными операндами, поэтому все адресные объекты должны иметь длину 16 бит. Следовательно, для формирования 20-битных адресов необходим дополнительный механизм. Таким механизмом в микропроцессоре 8086 является сегментация памяти.

Можно считать, что память состоит из произвольного числа сегментов емкостью по 64К байт. Начальный адрес каждого сегмента (20 бит) кратен 16, т. е. содержит нули в 4 младших битах. Таким образом, сегменты могут начинаться на границах блоков по 16 байт и их начальные



Смещение

0000 j Сегмент

Физтшии

адрес

Рис. 3-13. Формирование физического адреса в МП 8086

адреса имеют вид ХХХХО. Микропроцессор управляет 4 сегментами (программы (кода), данных, стека и дополнительного сегмента данных), начальные адреса которых без младших нулей хранятся в 16-битных сегментных регистрах CS, DS SS и ES. Команды с обращением к памяти формируют 16-битный исполнительный (эффективный), адрес ЕА, представляющий собой смещение в сегменте. Физический 20-битный адрес памяти равен сумме содержимого ЕА и сегментного регистра (рис. 3-13). При адресации портов ввода-вывода сегментные регистры не используются.

В программной модели микропроцессора, приведенной на рис. 3-14, заштрихованы регистры, в известной степенн эквивалентные регистрам микропроцессора 8080. Для удобства рассмотрения регистры программной модели разделены на три группы (файла).

Регистры общего назначения представлены 16-6hths!-ми регистрами АХ, ВХ, СХ и DX, допускающими разделп-ную адресацию старших (Н) и младших (L) 8-битных регистров. Двойственный характер РОН обеспечивает простую обработку 8- и 16-битных данных. Остальные регистры можно адресовать только как 16-битные. В основном все РОН в арифметических и логических операциях используются одинаково. Но имеется значительное число команд, которые специализируют некоторые РОН, что отражено в их названиях. Регистр АХ выполняет функции аккумулятора, он является источником и получателем в операциях



5 7 О

Аккумулятор База Счетчик Данные

Указатель стена Указатель Вазы Индекс источника Индекс приемника

г<у лр(рсу /т

Программный счшчик FLAGSН FLAGSL Регистр срлатай

Сегмент кода Сегмент даннЫк Сегмент стека Экстра - сегмент

Рис. 3-14. Программная модель МП

ввода-вывода, с ним связаны операции . преобразования, десятичной коррекции, умножения и деления. Регистр ВХ в некоторых командах участвует как регистр базового адреса и более или менее соответствует регистрам Н, L микропроцессора 8080. Регистр СХ используется как счетчик в операциях сдвигов, командах зацикливания и в операциях с цепочками байт и слов. Наконец, регистр DX неявно адресуется в операциях умножения и деления, а также содержит адрес портов ввода или вывода в режиме косвенной адресации.

Группа указательных и индексных регистров включает в себя 16-битные регистры SP, BP, SI и DI. Они обычно содержат внутрисегментные смещения и обеспечивают косвенную адресацию и динамическое вычисление исполнительных адресов. Гибкость таких вычислений достигается тем, что рассматриваемые регистры могут участвовать в арифметических и логических операциях как регистры общего назначения. Регистры SP (указатель стека) и BP (указатель базы) адресуют данные в текущем сегменте стека, а не в сегменте данных. Поэтому, если сегмент специально не определен, смещения в SP и BP относятся . к текущему сегменту стека. Индексные регистры SI (источника) и DI (получателя) содержат смещения, которые обычно относятся к текущему сегменту данных.



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) ( 20 ) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)