К9-12В. Вопросы и ответы к ГОСам 2013 / Микропроцессорные системы / 06. Достоинства и недостатки использования сементированного адресного пространства. сегментированного адресного простран
Только сегодня: скидка до 20% в подарок на первый заказ.
Какую работу нужно написать?
Другую работу
Помощник Анна
6. Достоинства и недостатки использования сегментированного адресного пространства. Структура логического адреса в сегментированном адресном пространстве. Селектор, дескриптор сегмента, смещение. Назначение и структура таблиц дескрипторов. Формирование линейного и физического адресов в сегментированном адресном пространстве. Логическое адресное пространство Для адресации операндов в физическом адресном пространстве программы используют логическую адресацию. Процессор автоматически транслирует логические адреса в физические, выдаваемые затем на системную шину. Архитектура компьютера различает физическое адресное пространство (ФАП) и логическое адресное пространство (ЛАП). Физическое адресное пространство представляет собой простой одномерный массив байтов, доступ к которому реализуется аппаратурой памяти по адресу, присутствующему на шине адреса микропроцессорной системы. Логическое адресное пространство организуется самим программистом исходя из конкретных потребностей. Трансляцию логических адресов в физические осуществляет блок управления памятью MMU. В архитектуре современных микропроцессоров ЛАП представляется в виде набора элементарных структур: байтов, сегментов и страниц. В микропроцессорах используются следующие варианты организации логического адресного пространства: * плоское (линейное) ЛАП: состоит из массива байтов, не имеющего определенной структуры; трансляция адреса не требуется, так как логический адрес совпадает с физическим; * сегментированное ЛАП: состоит из сегментов — непрерывных областей памяти, содержащих в общем случае переменное число байтов; логический адрес содержит 2 части: идентификатор сегмента и смещение внутри сегмента; трансляцию адреса проводит блок сегментации MMU; * страничное ЛАП: состоит из страниц — непрерывных областей памяти, каждая из которых содержит фиксированное число байтов. Логический адрес состоит из номера (идентификатора) страницы и смещения внутри страницы; трансляция логического адреса в физический проводится блоком страничного преобразования MMU; * сегментно-страничное ЛАП: состоит из сегментов, которые, в свою очередь, состоят из страниц; логический адрес состоит из идентификатора сегмента и смещения внутри сегмента. Блок сегментного преобразования MMU проводит трансляцию логического адреса в номер страницы и смещение в ней, которые затем транслируются в физический адрес блоком страничного преобразования MMU. Таким образом, основой получения физического адреса памяти служит логический адрес. В какой-то степени логическое адресное пространство, с которым имеет дело программист, можно сравнить со структурой книги, где аналогом сегмента выступает рассказ, страница книги соответствует странице ЛАП, а искомая информация — это некоторое слово. При этом если память организована как линейная, то номер искомого слова задается в явном виде и просто отсчитывается от начала книги. При сегментном представлении памяти искомое слово определяется его номером в заданном рассказе. Страничное представление памяти предполагает задание информации о слове в виде номера страницы в книге и номера слова на указанной странице. При сегментно-страничном представлении логический адрес слова задается номером слова в определенном рассказе. В этом случае по оглавлению книги определяется номер страницы, с которой начинается указанный рассказ. Затем, зная количество слов на странице и положение слова в рассказе, можно вычислить страницу книги и положение искомого слова на этой странице. Микропроцессор способен работать в двух режимах: реальном и защищенном. При работе в реальном режиме возможности процессора ограничены: емкость адресуемой памяти составляет 1 Мбайт, отсутствует страничная организация памяти, сегменты имеют фиксированную длину 2^16 байт. Этот режим обычно используется на начальном этапе загрузки компьютера для перехода в защищенный режим. В реальном режиме сегментные регистры процессора содержат старшие 16 бит физического адреса начала сегмента. Сдвинутый на 4 разряда влево селектор дает 20-разрядный базовый адрес сегмента. Физический адрес получается путем сложения этого адреса с 16-разрядным значением смещения в сегменте, формируемого по заданному режиму адресации для операнда или извлекаемому из регистра EIP для команды (рис. 3.1). По полученному адресу происходит выборка информации из памяти. В реальном режиме сегментные регистры процессора содержат старшие 16 бит физического адреса начала сегмента. Сдвинутый на 4 разряда влево селектор дает 20-разрядный базовый адрес сегмента. Физический адрес получается путем сложения этого адреса с 16-разрядным значением смещения в сегменте, формируемого по заданному режиму адресации для операнда или извлекаемому из регистра EIP для команды (рис. 3.1). По полученному адресу происходит выборка информации из памяти. Наиболее полно возможности микропроцессора по адресации памяти реализуются при работе в защищенном режиме. Объем адресуемой памяти увеличивается до 4 Гбайт, появляется возможность страничного режима адресации. Сегменты могут иметь переменную длину от 1 байта до 4 Гбайт. Общая схема формирования физического адреса микропроцессором, работающим в защищенном режиме, представлена на рис. 3.2. Как уже отмечалось, основой формирования физического адреса служит логический адрес. Он состоит из двух частей: селектора и смещения в сегменте. Селектор содержится в сегментном регистре микропроцессора и позволяет найти описание сегмента (дескриптор) в специальной таблице дескрипторов. Дескрипторы сегментов хранятся в специальных системных объектах глобальной (GDT) и локальных (LDT) таблицах дескрипторов. Дескриптор играет очень важную роль в функционировании микропроцессора, от формирования физического адреса при различной организации адресного пространства и до организации мультипрограммного режима работы. Поэтому рассмотрим его структуру более подробно. Сегменты микропроцессора, работающего в защищенном режиме, характеризуются большим количеством параметров. Поэтому в универсальных 32-разрядных микропроцессорах информация о сегменте хранится в специальной 8-байтной структуре данных, называемой дескриптором, а за сегментными регистрами закреплена основная функция — определение местоположения дескриптора. Структура дескриптора сегмента представлена на рис. 3.3. 32-разрядное поле базового адреса позволяет определить начальный адрес сегмента в любой точке адресного пространства в 2^32 байт (4 Гбайт). Поле предела (limit) указывает длину сегмента (точнее, длину сегмента минус 1: если в этом поле записан 0, то это означает, что сегмент имеет длину 1) в адресуемых единицах, то есть максимальный размер сегмента равен 2^20 элементов. Величина элемента определяется одним из атрибутов дескриптора битом G ( Granularity — гранулярность, или дробность): Таким образом, сегмент может иметь размер с точностью до 1 байта в диапазоне от 1 байта до 1 Мбайт (при G = 0 ). При объеме страницы в 2^12 = 4 Кбайт можно задать объем сегмента до 4 Гбайт (при G = 1 ): Бит присутствия P (Present) показывает возможность доступа к сегменту. Операционная система (ОС) отмечает сегмент, передаваемый из оперативной во внешнюю память, как временно отсутствующий, уставливая в его дескрипторе P = 0. При P = 1 сегмент находится в физической памяти. Когда выбирается дескриптор с P = 0 (сегмент отсутствует в ОЗУ), поля базового адреса и предела игнорируются. Это естественно: например, как может идти речь о базовом адресе сегмента, если самого сегмента вообще нет в оперативной памяти? В этой ситуации процессор отвергает все последующие попытки использовать дескриптор в командах, и определяемое дескриптором адресное пространство как бы»пропадает». Возникает особый случай неприсутствия сегмента. При этом операционная система копирует запрошенный сегмент с диска в память (при этом, возможно, удаляя другой сегмент), загружает в дескриптор базовый адрес сегмента, устанавливает P = 1 и осуществляет рестарт той команды, которая обратилась к отсутствовавшему в ОЗУ сегменту. Бит обращения A (Accessed) устанавливается в»1″ при любом обращении к сегменту. Используется операционной системой для того, чтобы отслеживать сегменты, к которым дольше всего не было обращений. В случае обращения за операндом смещение в сегменте формируется микропроцессором по режиму адресации операнда, заданному в команде. Смещение в сегменте кода извлекается из регистра — указателя команд EIP. Сумма извлеченного из дескриптора начального адреса сегмента и сформированного смещения в сегменте дает линейный адрес (ЛА). Если в микропроцессоре используется только сегментное представление адресного пространства, то полученный линейный адрес является также и физическим. Если помимо сегментного используется и страничный механизм организации памяти, то линейный адрес представляется в виде двух полей: старшие разряды содержат номер виртуальной страницы, а младшие смещение в странице. Преобразование номера виртуальной страницы в номер физической проводится с помощью специальных системных таблиц: каталога таблиц страниц (КТС) и таблиц страниц (ТС). Положение каталога таблиц страниц в памяти определяется системным регистром CR3. Физический адрес вычисляется как сумма полученного из таблицы страниц адреса физической страницы и смещения в странице, полученного из линейного адреса. Достоинство: Можно загружать / выгружать страницами. Виртуальная, оперативная и внешняя память разбивается на страницы одинаковой длинны. Недостатки: сегменты плохи тем, что имеют переменную длину Сегментная организация памяти в защищенном режиме В основе сегментной модели памяти лежит разделение ее на независимые адресные пространства переменной длины — сегменты. Для программы адресное пространство разделено на блоки смежных адресов, называемых сегментами, а программа может обращаться только к данным, находящимся в этих сегментах. Внутри сегментов применяется линейная адресация, то есть программа может обращаться к байту 0, байту 1 и т. д. Такая адресация осуществляется относительно начала сегмента, и физический адрес, ассоциируемый, например, с программным адресом 0, по существу, скрыт от программиста. Этот подход к управлению памятью опирается на тот факт, что программы обычно логически разделяются на области (сегменты) кода, данных и стека. При этом упрощается изоляция программ друг от друга в мультипрограммном режиме работы. Каждый сегмент имеет свое целевое назначение. Каждая задача имеет непосредственный доступ к трем основным сегментам: кода, данных и стека, определяемых сегментными регистрами CS, DS SS соответственно, и к трем дополнительным сегментам данных, определяемых сегментными регистрами ES, FS, GS. Описания этих сегментов содержатся в их дескрипторах. Любая программа, независимо от уровня ее привилегий, не может обращаться к сегменту до тех пор, пока он не описан с помощью дескриптора, а сам дескриптор не помещен в таблицу дескрипторов. Дескрипторы хранятся либо в глобальной таблице дескрипторов (Global Descriptor Table — GDT), либо в локальных таблицах дескрипторов (Local Descriptor Table — LDT). В GDT содержатся дескрипторы сегментов, которые доступны всем активным задачам, имеющимся в системе на данный момент. GDT может содержать любые дескрипторы сегментов, за исключением дескрипторов прерываний и ловушек. Обычно GDT включает дескрипторы сегментов кодов и данных операционной системы, сегментов состояния задач и дескрипторы сегментов, содержащих локальные таблицы дескрипторов. Микропроцессорная система имеет единственную глобальную таблицу дескрипторов. Локальная таблица дескрипторов LDT используется для хранения дескрипторов, доступных только данной задаче. Их количество определяется количеством активных задач в системе. Для нахождения дескриптора в таблице дескрипторов используется селектор, который содержится в одном из сегментных регистров. Селектор представляет собой 16-разрядое слово, которое разбито на 3 поля: * TI ( Table Indicator — индикатор таблицы ) показывает, к какой таблице идет обращение: TI = 0 — дескриптор находится в глобальной таблице дескрипторов GDT, TI = 1 — в локальной таблице LDT; * Index: поле индекса — номер дескриптора в соответствующей таблице дескрипторов; * RPL ( Request privilege level — уровень привилегий запроса ). При обращении сравнивается с полем DPL в байте доступа дескриптора. Обращение разрешается, если уровень привилегий запроса не ниже, чем уровень привилегий дескриптора. Достоинства: -«осмысленность» сегментов упрощает их защиту -позволяет организовать доступ к общим данным/подпрограммам для разных процессов со ссылкой на один физический участок ОП. Недостатки: -медленное преобразование адреса -высокий уровень фрагментации, которая возникает из-за непредсказуемости размеров сегментов (в процессе работы системы в памяти образуются небольшие участки свободной памяти, в которые не может быть загружен ни один сегмент. Суммарный объем, занимаемый фрагментами, может составить существенную часть общей памяти системы, приводя к ее неэффективному использованию)
10.05.2014 105.86 Кб 103 03. Система прерывания микроконтроллера МК-51.docx
10.05.2014 89.64 Кб 88 04. Блок таймеров счетчиков МК-51. Назначение, структура, режимы работы.docx
10.05.2014 126.81 Кб 84 09. Обмен информацией в режиме прямого доступа в память.docx
10.05.2014 126.49 Кб 85 10. Особенности архитектуры МП с MMX и SSE.docx
10.05.2014 51 б 70 links.txt
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Какие недостатки у реального режима адресации
Процессор Intel 80386. Учебный курс.
Часть 2.2. Механизм адресации защищенного режима. |
Все возможности 80386 расскрываются, когда процессор работает в Защищенном Режиме Виртуального Адреса (Защищенный режим). Защищенный режим значительно увеличивает адресное пространство: до 4 Гигабайт и позволяет прогон программ практически неограниченного размера (64 Терабайта). Кроме того, Защищенный режим дает возможность работать со всеми существующими 8086 и 80826 программами, обеспечивая в то же время управление огромной памятью и аппаратным механизмом защиты. Защищенный режим позволяет использовать дополнительные команды специально оптимизированные для защищенных многозадачных операционных систем. Базовая архитектура 80386 остается неизменной, регистры, команды и режимы адресации, описанные в предыдущих разделах сохранены.
Основное различие между Защищенным и Реальным режимом состоит, с точки зрения программиста в том, что увеличивается адресное пространство и изменяется механизм адресации.
МЕХАНИЗМ АДРЕСАЦИИ.
Как и в Реальном режиме, в защищенном режиме используется два компонента для формирования логического адреса: 16-битовый селектор для определения линейного базового адреса сегмента, и 32-битовый исполнительный адрес добавляется к базовому адресу для формирования 32-битового линейного адреса. Затем линейный адрес используется либо как 32-битовый адрес или, если имеется возможность страничной организации памяти (подкачки), то механизм подкачки преобразовывает 32-битовый линейный адрес в 32-битовый физический адрес.
Различие между двумя режимами в способе вычисления базового адреса. В Защищенном режиме селектор используется для спецификации индекса в таблице операционных систем. Таблица содержит 32-битовый базовый адрес данного сегмента. Физический адрес формируется путем добавления базового адреса, полученного из таблицы, к смещению. Подкачка обеспечивает дополнительный механизм управления памятью, который работает только в Защищенном режиме. Подкачка обеспечивает управление очень большим сегментом 80386, так как такая подкачка работает под сегментацией (т.е сначала работает подкачка, а затем сегментация, независимо друг от друга). Механизм подкачки переводит защищенный линейный адрес, который выдается блоком сегментации, в физический адрес:
Реальный режим — Real mode
Реальный режим, также называемый режим реального адреса, является рабочим режимом для всех x86 -совместимых Процессоры. Этот режим получил свое название от того факта, что адреса в реальном режиме всегда соответствуют реальным ячейкам памяти. Реальный режим характеризуется 20- бит сегментированным пространством адреса памяти (что дает ровно 1 MiB адресуемой памяти) и неограниченным прямым программным доступом ко всей адресуемой памяти, Адреса ввода-вывода и периферийное оборудование. Реальный режим не поддерживает защиту памяти, многозадачность или уровни привилегий кода.
До выпуска 80286, который вводил защищенный режим, реальный режим был единственным доступным режимом для процессоров x86; и для обратной совместимости все процессоры x86 при сбросе запускаются в реальном режиме, хотя при запуске в других режимах можно эмулировать реальный режим в других системах.
- 1 История
- 2 Емкость адресации
- 3 Линия A20
- 4 Переключение в реальный режим
- 5 Отклонение
- 6 См. Также
- 7 Справочные материалы
- 8 Внешние ссылки
История
Архитектура 286 представила защищенный режим, позволяющий (среди прочего) защитить память на уровне оборудования. Однако для использования этих новых функций требовалась новая операционная система, специально разработанная для защищенного режима. Поскольку основной проектной спецификацией микропроцессоров x86 является их полная обратная совместимость с программным обеспечением, написанным для всех микросхем x86 до них, микросхема 286 была создана для запуска в « реальном режиме », то есть в режиме который отключил новые функции защиты памяти, чтобы можно было запускать операционные системы, написанные для 8086 и 8088. По состоянию на 2018 год текущие процессоры x86 (включая процессоры x86-64 ) могут загружать операционные системы в реальном режиме и могут запускать программное обеспечение, написанное практически для любого предыдущего чипа x86, без эмуляции или виртуализации.
BIOS ПК, представленный IBM, работает в реальном режиме, как и операционные системы DOS (MS-DOS, DR-DOS, так далее.). Ранние версии Microsoft Windows работали в реальном режиме. Windows / 386 позволила частично использовать защищенный режим, и это было более полно реализовано в Windows 3.0, которая могла работать как в реальном режиме, так и в защищенном режиме в на манер Windows / 386. В Windows 3.0 на самом деле было несколько режимов: «реальный режим», «стандартный режим» и «386-расширенный режим», последний требовал некоторых функций виртуализации процессора 80386 и, таким образом, не мог работать на 80286. Windows 3.1 удалила поддержку для реального режима, и это была первая основная операционная среда, для которой требовался как минимум процессор 80286. Архитектура Windows 95 является развитием Windows for Workgroups «386 расширенного режима». Ни одна из этих версий не могла считаться современной операционной системой x86, поскольку они перешли в защищенный режим только для определенных функций. (Unix, Linux, OS / 2, Windows NT 3.x и выше и т. Д. Считаются современными ОС, поскольку они переключаются ЦП переходит в защищенный режим при запуске, никогда не возвращается в реальный режим и постоянно обеспечивает все преимущества защищенного режима.) 64-разрядные операционные системы используют это только как еще один шаг к переходу в длинный режим. Стоит отметить, что защищенный режим 80286 значительно более примитивен, чем улучшенный защищенный режим, представленный в 80386; последний иногда называют защищенным режимом 386, и это режим, в котором работают современные 32-разрядные операционные системы x86.
Емкость адресации
8086, 8088 и 80186 имеют 20-битный адрес шина, но необычная схема сегментированной адресации, которую Intel выбрала для этих процессоров, фактически дает эффективные адреса, которые могут иметь 21 значащий бит. Эта схема сдвигает 16-разрядный номер сегмента на четыре бита влево (делая 20-разрядное число с четырьмя младшими нулями) перед добавлением к нему 16-разрядного смещения адреса; максимальная сумма возникает, когда и сегмент, и смещение равны 0xFFFF, что дает 0xFFFF0 + 0xFFFF = 0x10FFEF. На 8086, 8088 и 80186 результат эффективного адреса, который выходит за пределы 20 битов, заключается в том, что адрес «оборачивается» до нулевого конца диапазона адресов, то есть берется по модулю 2 ^ 20 (2 ^ 20 = 1048576 = 0x100000). Однако 80286 имеет 24 бита адреса и вычисляет эффективные адреса до 24 бит даже в реальном режиме. Следовательно, для сегмента 0xFFFF и смещения больше 0x000F 80286 фактически будет осуществлять доступ к началу второго мебибайта памяти, тогда как 80186 и более ранние будут обращаться к адресу, равному [смещение] — 0x10, что находится в начале первого мебибайта. (Обратите внимание, что на 80186 и более ранних версиях первый кибибайт адресного пространства, начиная с адреса 0, является постоянным неподвижным местом таблицы векторов прерываний.) Итак, фактический объем памяти, адресуемой процессоры x86 80286 и более поздних версий в реальном режиме: 1 MiB + 64 KiB — 16 B = 1114096 B.
A20 line
Некоторые программы, предшествующие 80286, были спроектированы так, чтобы использовать преимущества циклической адресации памяти (по модулю), поэтому 80286 представлял проблему для обратной совместимости. Принуждение 21-й адресной строки (фактического провода логического сигнала, выходящего из микросхемы) к низкому логическому уровню, представляющему ноль, приводит к эффекту по модулю 2 ^ 20, чтобы соответствовать арифметике адресов более ранних процессоров, но 80286 не имеет внутреннего возможность выполнять эту функцию. Когда IBM использовала 80286 в своем IBM PC / AT, они решили эту проблему, включив программно настраиваемый вентиль для включения или отключения (принудительного обнуления) адресной линии A20 между контактом A20 на 80286. и системная шина; он известен как Gate-A20 (вентиль A20) и до сих пор используется в наборах микросхем для ПК. Большинство версий драйвера расширенной памяти HIMEM.SYS для IBM- / MS-DOS, как известно, отображалось при загрузке сообщения о том, что они установили «обработчик A20», часть программного обеспечения для управления Gate-A20 и согласования его с потребностями программ.. В защищенном режиме необходимо включить линию A20, иначе возникнут ошибки физической адресации, которые могут привести к сбою системы.
Переключение в реальный режим
Intel ввела защищенный режим в семейство x86 с намерением, чтобы операционные системы, в которых он использовался, работали полностью в новом режиме и чтобы все программы, работающие в защищенном режиме, работали система также будет работать в защищенном режиме. Из-за существенных различий между реальным режимом и даже довольно ограниченным 286 защищенным режимом программы, написанные для реального режима, не могут работать в защищенном режиме без перезаписи. Поэтому, имея широкую базу существующих приложений реального режима, от которых зависели пользователи, отказ от реального режима создавал проблемы для отрасли, и программисты искали способ переключаться между режимами по желанию. Тем не менее, Intel, в соответствии со своими намерениями в отношении использования процессора, предоставила простой способ переключения в защищенный режим на 80286, но не простой способ вернуться в реальный режим. До модели 386 единственным способом переключения из защищенного режима обратно в реальный режим был сброс процессора; после сброса он всегда запускается в реальном режиме, чтобы быть совместимым с более ранними процессорами x86 обратно на 8086. Сброс процессора не очищает оперативную память системы, поэтому это, хотя и неудобно и неэффективно, на самом деле возможно. В защищенном режиме состояние процессора сохраняется в памяти, затем процессор сбрасывается, перезапускается в реальном режиме и выполняет некоторый код реального режима для восстановления сохраненного состояния из памяти. Затем он может запускать другой код реального режима, пока программа не будет готова вернуться в защищенный режим. Переключение в реальный режим требует больших затрат времени, но этот метод позволяет программам в защищенном режиме использовать такие службы, как BIOS, который работает полностью в реальном режиме (изначально был разработан для 8088 на основе IBM Personal Computer модель (тип машины) 5150). Этот метод переключения режимов также используется DPMI (в реальном, не эмулируемом, DOS) и расширителями DOS, такими как DOS / 4GW, чтобы разрешить защищенный режим программы для работы под DOS; система DPMI или расширитель DOS переключается в реальный режим для вызова вызовов DOS или BIOS, а затем переключается обратно, чтобы вернуться к прикладной программе, которая работает в защищенном режиме.
Отклонить
Переход к ядру NT привел к тому, что операционная система не нуждалась в DOS для загрузки компьютера, а также не могла ее использовать. После Windows 3.1x необходимость перезагружать компьютер в реальном режиме MS-DOS уменьшалась, пока она больше не поддерживалась в Windows ME. Единственный способ в настоящее время запускать приложения DOS, которые требуют реального режима из более новых версий Windows, — это использовать эмуляторы, такие как продукты DOSBox или x86 virtualization.
См. Также
Ссылки
Внешние ссылки
- Чурдакис, Майкл (21 мая 2015 г.). «Настоящее, защищенное, длинное руководство по сборке для ПК». Проект кода.
Формирование физического адреса в реальном режиме. Недостатки реального режима.
Характеристики механизма адресации физической памяти в реальном режиме.
- Диапазон изменения физического адреса — от 0 до 1 Мбайт. Эта величина определяется тем, что шина адреса i8086 имела 20 линий.
- Максимальный размер сегмента— 64 Кбайт. Это объясняется 16-разрядной архитектурой 18086. Нетрудно подсчитать, что максимальное значение, которое могут содержать 16-разрядные регистры, составляет 2 16 — 1, что применительно к памяти и определяет величину 64 Кбайт.
- Для обращения к конкретному физическому адресу оперативной памяти необходимо определить адрес начала сегмента (сегментную составляющую) и смещение внутри сегмента.
Недостатки сегментной организации памяти в реальном режиме:
- Сегменты могут перекрываться друг другом.
- Пользователь может обратиться по любому адресу, в том числе и по несуществующему.
- Ограниченный размер сегмента.
-
Микропроцессор ia-32. Регистры общего назначения
- EAX/AX/AH/AL (Accumulator register) – аккумулятор – применяется для хранения промежуточных данных, а также адресов;
- EBX/BX/BH/BL (Base register) – базовый регистр – применяется для хранения промежуточных данных, а также для хранения базового адреса объектов в памяти;
- ECX/CX/CH/CL (Count register) – регистр-счетчик – применяется для хранения промежуточных данных, а также в циклических командах, производящих некоторые повторяющиеся действия, в качестве счетчика итераций;
- EDX/DX/DH/DL (Data register) – регистр данных – так же, как и регистр EAX/AX/AH/AL, он используется для хранения промежуточных данных.
- ESI/SI (Source Index register) – индекс источника – содержит адрес текущего элемента в цепочке-источнике;
- EDI/DI (Destination Index register) – индекс приемника – содержит адрес текущего элемента в цепочке-приемнике.
- ESP/SP (Stack Pointer register) – регистр указателя стека – содержит указатель (адрес) на вершину стека в сегменте стека. Содержимое регистра неявно изменяется с помощью команд работы со стеком. Использование этого регистра для хранения каких-либо операндов программы недопустимо;
- EBP/BP (Base Pointer register) – регистр указателя базы кадра стека – предназначен для организации произвольного доступа к данным внутри стека. Например, при организации доступа к параметрам, передаваемым в процедуры через стек..
Микропроцессор ia-32. Сегментные регистры
- сегмент кода – содержит машинные команды, для доступа к нему служит регистр CS (Code Segment register) – сегментный регистр кода;
- сегмент стека – для доступа к нему служит регистр SS (Stack Segment register) – сегментный регистр стека;
- сегмент данных – содержит обрабатываемые программой данные, для доступа к нему служит регистр DS (Data Segment register) – сегментный регистр данных;
- дополнительные сегменты данных – их адреса должны содержаться в регистрах ES, GS, FS.