русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программистская модель МП i8086. Назначение регистров.


Дата добавления: 2014-11-27; просмотров: 2410; Нарушение авторских прав


 

Совокупность регистров, доступных программисту и используемых им при составлении программ на языке АССЕМБЛЕР или другом машинно-ориентированном языке, называется программистской моделью.

На рис. 3.4 представлена программистская модель МП i8086, содержащая программно-доступные регистры. К их числу относятся регистры общего назначения, сегментные регистры, регистр – указатель команд и регистр признаков - флагов. Все они являются 16-разрядными регистрами.

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

Регистры данных AX, BX, CX, DX служат для хранения операндов и результатов операций. Возможна адресация как целых регистров, так и их младшей и старшей частей, называемых L и H соответственно. Некоторым регистрам наряду с общим назначениями придаются и специальные. В последнем случае в соответствующих командах эти регистры указываются неявно самим кодом операции. Так, в некоторых командах

· регистр АХ используется в качестве аккумулятора т.е. регистра, в котором находится один из операндов и в который помещается результат операции;

· Регистр ВХ – как базовый регистр, используется при косвенной адресации;

· Регистр СХ – как счетчик количества сдвинутых бит в командах сдвига, счетчик числа повторов в командах управления вычислительными циклами и в операциях с цепочками байт;

·

 
 

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

 

Рис. 3.4. Программистская модель МП i8086.

Как отмечалось выше, любая программа может использовать четыре типа сегмента:

ü кодов (где хранятся машинные коды команд);

ü данных;

ü дополнительных данных;

ü стека.



Хотя все регистры смещений и сегментов являются 16-разрядными, МП выдает на шину адреса при обращениях к оперативной памяти (ОП) 20-разрядные исполнительные (физические) адреса, позволяющие обращаться к ОП емкостью 1 Мбайт. Это становится возможным благодаря механизму сегментации памяти. Размер сегмента не может превышать 64 Кбайта. Допускается перекрытие сегментов. Базовые (начальные) 16-разрядные адреса сегментов, хранящиеся в соответствующих сегментных регистрах, трактуются как 20-разрядные с нулями в четырех младших разрядах. Другими словами, начальные адреса должны быть кратны 16.

Физический адрес операнда или команды формируется, как это показано на рис. 3.4, суммированием начального адреса соответствующего сегмента (содержимого сегментного регистра, сдвинутого на четыре разряда влево, т.е. дополненного нулями в четырех младших разрядах) и адреса смещения, так же называемого эффективным адресом ЕА. Адрес смещения вычисляется в МП на основе содержащейся в команде информации о способе формирования адреса операнда.

 

Рис. 3.5. Формирование физического адреса.

 

МП i8086 имеет для хранения адресов сегментов текущей программы 4 сегментных регистра: CS – для сегмента кода, DS, - для сегмента данных, SS – для сегмента стека, ES – для дополнительного сегмента. Ни в каких арифметических, логических и т.п. машинных операциях эти регистры участвовать не могут. Можно лишь записывать в них и считывать из них, да и то есть определенные ограничения.

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

CS и IP - адресуют вместе содержимое сегмента кода программы;

SS и BP или SS и SP - адресуют сегмент стека;

DS и один из регистров BX, SI, DI - адресуют сегмент данных;

Специальное назначение регистров приведено ниже.



<== предыдущая лекция | следующая лекция ==>
Способ адресации ячеек сегментированной памяти | Индексные регистры и регистры-указатели


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.2 сек.