Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Сегмент кода (содержит команды программы).




ПОЛЬЗОВАТЕЛЬСКИЕ РЕГИСТРЫ

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

 

К пользовательским регистрам относятся:

 

1) восемь 32-битных регистров, которые могут использоваться программистами для хранения данных и адресов (регистры общего назначения)

eax/ax/ah/al

ebx/bx/bh/bl

edx/dx/dh/dl

ecx/cx/ch/cl

esi/si

edi/di

ebp/bp

esp/sp

2) шесть регистров сегментов: cs, ds, ss, es, fs, gs

3) регистр состояния (регистр флагов) eflags/flags;

4) регистр управления (регистр указателя команды) eip/ip.

 

Обратим внимание, наклонной разделительной чертой обозначены части одного большого 32-разрядного регистра. Они могут использоваться в программе как отдельные объекты.

Благодаря этому поддерживается работоспособность программ, написанных для младших 16-разрядных моделей микропроцессоров фирмы Intel, начиная с i8086. Регистры микропроцессоров i486 и Pentium в основном 32-разрядные. Размерность у них больше, что и отражено в их обозначениях — они имеют приставку e (Extended).

 

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

 

Регистры общего назначения физически находятся в микропроцессоре внутри арифметико-логического устройства (АЛУ), поэтому их еще называют регистрами АЛУ.

 

eax/ax/ah/al (Accumulator register) — регистр-аккумулятор.

Применяется для хранения промежуточных данных.

 

ebx/bx/bh/bl (Base register) — базовый регистр.

Применяется для хранения базового адреса некоторого объекта в памяти.

 

ecx/cx/ch/cl (Count register) — регистр-счетчик.

Применяется в командах, производящих некоторые повторяющиеся действия.

Его использование часто неявно и скрыто в алгоритме работы соответствующей команды. Например, команда организации цикла loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра ecx/cx.

 

edx/dx/dh/dl (Data register) — регистр данных.

Применяется для хранения промежуточных данных.

 

Обратим внимание, можно использовать только весь регистр целиком (например, eax), младшую 16-битную часть (например, ax) и 8-битные части этих регистров (например, ah,al).

!!! Старшие 16 бит этих регистров как самостоятельные объекты недоступны.

 

 

Регистры esi/si и edi/di используются для поддержки так называемых цепочечных операций, то есть операций, производящих последовательную обработку цепочек элементов (можно сравнить со строками в языке Pascal).

 

esi/si (Source Index register) — индекс источника.

Этот регистр в цепочечных операциях содержит текущий адрес элемента в цепочке-источнике (первоначальная строка).

 

edi/di (Destination Index register) — индекс приемника (получателя).

Этот регистр в цепочечных операциях содержит текущий адрес в цепочке-приемнике (результирующая строка).

 

Регистры ebp/bp и esp/sp предназначены для работы со стеком.

 

esp/sp (Stack Pointer register) — регистр указателя стека.

Содержит указатель вершины стека в текущем сегменте стека.

 

ebp/bp (Base Pointer register) — регистр указателя базы кадра стека.

Регистр предназначен для организации произвольного доступа к данным внутри стека.

 

 

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

 

В программной модели микропроцессора имеется шесть сегментных регистров:

Cs, ss, ds, es, gs, fs.

 

Все сегментные регистры - 16-разрядные.

 

Их существование обусловлено спецификой организации и использования оперативной памяти: микропроцессоры Intel в любом режиме работы (реальный режим, защищенный режим) поддерживают сегментную модель организации оперативной памяти.

Она заключается в том, что микропроцессор аппаратно поддерживает структурную организацию программы в виде частей (фрагментов), которые называются сегментами. Соответственно, такая организация памяти называется сегментной.

 

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

Фактически в этих регистрах содержатся адреса ячеек памяти, с которых начинаются соответствующие сегменты.

 

Микропроцессор поддерживает следующие типы сегментов.

 

Сегмент кода (содержит команды программы).

Для доступа к этому сегменту служит регистр

cs (code segment register) — сегментный регистр кода.

 

Он содержит адрес сегмента кода, к которому в данный момент имеет доступ микропроцессор.





Поделиться с друзьями:


Дата добавления: 2017-04-04; Мы поможем в написании ваших работ!; просмотров: 570 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2335 - | 2134 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.