Республики казахстан южно-казахстанский экономико-технологический


Наборы инструкций современных процессоров можно разделить на прикладные, используемые приложениями, и системные, используемые ОС



бет11/15
Дата15.06.2016
өлшемі2.05 Mb.
#137969
түріПрограмма обучения студентов
1   ...   7   8   9   10   11   12   13   14   15

Наборы инструкций современных процессоров можно разделить на прикладные, используемые приложениями, и системные, используемые ОС.

Прикладные инструкции можно разделить на следующие группы:

  • Инструкции общего назначенияосновные целочисленные инструкции х86, используемые почти всеми программами. Эти инструкции загружают, сохраняют и обрабатывают данные, расположенные в регистрах общего назначения и памяти. Часть инструкций служат для изменения последовательности исполнения – это инструкции условных и безусловных переходов, вызовы процедур.


  • Инструкции с плавающей точкой х87 – они используются в старых приложениях, требующих точных вычислений. Эти инструкции поддерживают разные форматы с плавающей точкой. Кроме того, поддерживаются двоично-десятичные форматы и выполняются преобразования форматов.

  • 64- битные медиа – инструкции – оперируют с данными, расположенными в 64-битных регистрах. Они выполняют целочисленные операции и вычисления с плавающей точкой в скалярном и векторном вариантах и предназначены для медиа-приложений, работающих с блоком данных

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

Вопросы:



  1. что такое шина процессора?

  2. какие шины используются в процессорах?

  3. каким параметром характеризуется работа процессора?

  4. какие виды инструкций работы процессоров существуют?

  5. на какие группы делятся прикладные инструкции процессора?


Семинар 6.
Суперскалярная архитектура процессоров.

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

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

Конвейер классического процессора Pentium имеет пять ступеней. Конвейеры процессоров Р6 с суперконвейерной архитектурой имеют большее число ступеней (10-12), что позволяет упростить каждую из них и, сократить время пребывания в них инструкций. Гиперконвейер Pentium4 имеет уже 20 ступеней для повторно выполняемых участков программного кода.

Скалярным называют процессор с единственным конвейером. К этому типу относятся все процессоры Intel до класса 486 включительно. Суперскалярный процессор имеет более одного конвейера, например у Pentium их два. Эти конвейеры способны обрабатывать инструкции параллельно.

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


  • При статическом предсказании – переходы по одним условиям произойдут, а по другим – нет. Переходы назад скорее произойдут (это типичный цикл), вперед – нет (типично для обработки ошибок).

  • Динамическое предсказание – опирается на предысторию вычислительного процесса – для каждой конкретной команды перехода накапливается статистика поведения, на основе которой предсказывается переход.

  • Программные намеки – новые префиксы инструкций (появились в Р4), перекрывающие статическое предсказание. Намеки закладываются в программный код во время компиляции.

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



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

При исполнении по продвижению (спекулятивным) используется результат предсказаний переходов. Если предсказание сбывается, то труд оказывается не напрасным, если нет – то приходится выполнять откат. В этом случае конвейер оказывается недогруженным и простаивает несколько тактов.

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

Все описанные термины и технологии вкладываются в общее понятие "динамического исполнения", введенное фирмой Intel с появление процессоров Р6. Улучшенное динамическое исполнение отличается улучшениями различных сторон, в частности улучшением предсказаний переходов.

Благодаря усложнению микроархитектуры от поколения к поколению возрастает производительность процессоров, причем этот рост обеспечивается двумя факторами:


  • Растет тактовая частота ядра процессора;

  • Увеличивается относительный темп выполнения инструкций.

Вопросы:


  1. что понимается под архитектурой ЦП?

  2. что такое основные программно-видимые свойства процессора?

  3. что понимается под микроархитектурой процессора?

  4. что такое конвейеризация инструкций? Дать объяснение.

  5. дать объяснение понятию "предсказание переходов"

  6. какие методы используются в предсказаниях переходов?



Понятие защищенного режима.

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

Адрес выполняемой инструкции хранится в специальном регистре – указателе инструкций. После выполнения линейной инструкции этот указатель увеличивает свое значение на ее длину, т.е. указывает на начало следующей инструкции. Линейная инструкция не нарушает порядок выполнения, определяемый последовательностью их расположения в памяти. Существуют еще инструкции передачи управления, среди которых различают инструкции переходов и вызовов процедур. Эти инструкции в явном или не явном виде содержат информацию об адресе следующей выполняемой инструкции, который может указывать на произвольную ячейку памяти. Инструкции переходов и вызовов могут быть безусловными (ни от чего независимыми) и условными. Если переход или вызов не состоится, то исполняется инструкция, расположенная в памяти вслед за текущей. Вызов процедуры характерен тем, что перед ним ЦП сохраняет в стеке (стек – это область ОЗУ) адрес следующей инструкции, и на этот адрес передается управления после завершения исполнения процедуры. Переход выполняется безвозвратно.

Последовательность выполнения инструкций может быть нарушена под воздействием внутренних или внешних причин. К внутренним причинам относятся исключения (exceptions) – особые ситуации, возникающие при выполнении инструкций. Наглядным примером исключения является попытка деления на ноль. При возникновении условия исключения процессор автоматически выполняет вызов процедуры обработки исключения, после которой он может вернуться к повторному исполнению инструкции.

Внешними причинами изменения нормальной последовательности инструкций являются аппаратные прерывания – вызовы процедур под воздействием электрических сигналов на специальные выводы процессора. Эти сигналы могут подаваться неожиданно для исполняемой программы.

И наконец, последовательность инструкций может изменяться по сигналу аппаратного сброса или инициализации процессора. С этого-то и начинается функционирование ПК: процессор переводится в исходное состояние и "запускается".
Защищенный режим
Для того, чтобы потоки задач не мешали друг другу, требуются меры принудительной защиты критических ресурсов. Современные ОС используют защищенный режим процессора, в котором эти меры реализуются на аппаратном уровне. Поскольку программа может взаимодействовать с подсистемами ПК только через память, порты ввода/вывода, а также аппаратные прерывания, то защищать нужно эти три типа ресурсов. Для того, чтобы потоки могли исполняться независимо друг от друга, каждому из них предоставляется виртуальная память, которой он может распоряжаться по своему усмотрению.

В защищенном режиме существует разделение привилегий между пользовательскими процессами и операционной системой. Для этого разделения определен ряд инструкций процессора, которые можно исполнять только с определенным уровнем привилегий процесса.

Для защиты и виртуализации памяти в процессорах предусмотрены два основных механизма: сегментация и страничная трансляция адресов.

При сегментации ОС выделяет каждому процессу сегменты – области памяти различного назначения. Из одних сегментов данные читаются, в другие – записываются. Для программного кода выделяются специальные сегменты, инструкции могут выбираться и выполняться только из них. Если ошибочно передать управление на область данных, то дальнейшее поведение процессора непредсказуемо – это так называемый "вылет". Защита не позволяет передать управление на сегмент данных: сработает исключение защиты, которое обрабатывается ОС, и ошибочный процесс принудительно завершается. Таким образом, вероятность вылета снижается. Система защиты может полностью контролировать распределение памяти, генерируя исключения в случаях различных нарушений.

При страничной трансляции адресов виртуальная логическая память делится на страницы одинакового размера. Любая страница может отображаться на любую область физической памяти. Отображение поддерживается с помощью специальных таблиц страничной трансляции адресов. Благодаря этому, страница памяти, не нужная в какой-то момент времени процессору, может быть выгружена на устройство хранения (диск). На ее место можно загрузить нужную страницу. Заявку на загрузку нужной страницы делает сам процессор. Если программе потребовалась ячейка виртуальной памяти из страницы, образа которой нет в физической памяти, вырабатывается специальное исключение. Обработчик этого исключения находит свободную физическую страницу, "подкачивает" на нее с диска нужную информацию и возвращает управление процессу, прерванному исключением.

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

Эффективность защиты (устойчивость ПК к ошибкам и вирусам) в значительной мере определяется предусмотрительностью разработчиков ОС. Вышеописанная защита от исполнения только в семействе OS Windows реализована только в SP2 для OS Windows XP.
Вопросы:


  1. для чего используются прерывания в работе ЦП?

  2. для чего используется защищенный режим процессора?

  3. какие основные механизмы предусмотрены для защиты в процессорах?


Семинар 7.
Программирование на языке АССЕМБЛЕР
Усовершенствованная 64-разрядная шина данных.

Поддержка мультипроцессорности.

Поддержка различных размеров страницы памяти.
Одними из первых характеристик, которые указывают при описании процессора, являются разрядности его шин адреса и данных. Под шиной подразумевается набор проводников, по которым передаются однотипные сигналы. Представьте пару проводов, проложенных из одного конца здания в другой. Если присоединить в какой-либо точке к этим проводам генератор напряжением 220 В, а вдоль линии в некоторых местах расставить розетки, то получится силовая шина. Независимо от того, в какую розетку вставить вилку, всегда получим один и тот же сигнал – 220 В переменного тока. Любую линию передачи, в которой подключено не менее двух розеток, можно назвать шиной. В обычном ПК имеется несколько шин, а у каждого процессора – две основные шины: шина данных и шина адреса. Когда говорят о шине процессора, чаще всего имею в виду шину данных. Чем больше сигналов одновременно поступает в шину, тем больше данных передается по ней в единицу времени и тем более быстродействующей она становится. Данные в ПК передаются в цифровом виде - 1 или 0.

Разрядность шины данных характеризует процессор. Когда говоря о 16, 32 или 64-разрядном компьютере, имеют в виду разрядность шины данных МП. По ней можно оценить производительность МП и всего ПК.



Внутренние регистры. Разрядностью внутренних регистров определяется, какое количество бит данных процессор способен обработать за один прием. В большинстве современных процессорах внутренние регистры – 32 и 64-разрядные.

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



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

Можно представить себе следующее. Если шина данных – это автострада, а ее разрядность количество полос движения, то с шиной адреса можно сравнить нумерацию домов. Количество линий в шине эквивалентно количеству цифр в номере дома. Например, если вы живете на улице, где по каким-то причинам номера домов не могут состоять более чем из двух цифр, то количество домов на ней не может быть больше 100.

В ПК мы уже знаем применяется двоичная система счисления, поэтому при двух разрядной адресации можно выбрать только четыре ячейки с адресами 00, 01, 10, 11, при трехразрядной – восемь от 000 до 111.

Шины данных и адреса независимы и разработчики микросхем выбирают их разрядности по своему усмотрению, но, как правило, чем больше разрядов в шине данных, тем больше их и в шине адреса. Разрядности этих шин являются показателями возможностей процессора: количеством разрядов в шине данных определяется способность процессора обмениваться информацией, а разрядностью шины адреса – то, с каким объемом памяти он может работать.
Поддержка различных размеров страницы памяти
Страничное управление памятью – это общепринятый механизм организации виртуальной памяти. Страничная трансляция адресов выполняется блоком управления памятью (MMU – Memory Management Unit), расположенном в процессоре, с использованием каталогов и таблиц дескрипторов страниц – структур данных в оперативной памяти. Страничная трансляция адресов приводит к тому, что непрерывная область линейных адресов может отобразиться в виде разбросанных страниц физической памяти. Для того, чтобы различные подсистемы компьютера могли программно общаться на «общем языке» линейных адресов, применяют локальные конструкции наподобие MMU. Для графических адаптеров используют таблицу GART, для контроллеров шин (например, USB) строятся специальные конструкции дескрипторов передач.

Блок MMU делит линейный адрес на виртуальные страницы фиксированного размера (4К, 2М, 4М). На такие же страницы делится и адресное пространство физических адресов. Часть страниц физического пространства занята ОЗУ, часть отображается на области памяти, назначенные периферийным устройствам (ввод-вывод, отображенный на память).

Каждая виртуальная страница может присутствовать в физической памяти ОЗУ или нет. Текущее описание страницы хранится в дескрипторе страницы – структуре данных в ОЗУ. Дескрипторы страниц организуются в иерархии каталогов и таблиц. На корень этой иерархии указывает специальный, управляющий регистр CR3. Каждый уровень иерархии таблиц использует свой фрагмент линейного адреса. Самый младший фрагмент адреса (offset) является смещением и виртуальной, и физической страниц, при этом размеры их обязательно совпадают. Элементы каталогов и таблиц страниц содержат физический базовый адрес. Размер страницы может принимать значение 4К, 2М и 4М. Чем меньше размер страницы и больше объем адресуемой памяти, тем больше приходится использовать дескрипторов страниц и тем сложнее структура каталогов и таблиц. Для процессоров х86 характерны следующие варианты разбиения на страницы:


    • «классические» страниц по 4К с 3-ступенчатым адресом;

    • страницы по 4М с 2-ступенчатым адресом;

    • страницы по 4К с 4-ступенчатым адресом и расширенным 36-битным физическим адресом;

    • страницы по 2М с 2-ступенчатым адресом и 36-битным физическим адресом;

    • страницы по 4К с 5-ступенчатым 48-битным линейным адресом и 52-битным физическим адресом, в 64-битном режиме процессоров с 64-битным расширением;

    • страницы по 2М с 4-ступенчатым 48-битным линейным адресом и 52-битеым физическим адресом в 64-битном режиме процессоров с 64-битным расширением.

Процессор выполняет трансляцию адресов автоматически в процессе исполнения инструкции, обращающейся к памяти. Если самой инструкции, к которой выполняется обращение, в физической памяти нет, то возникает исключение «отказ страницы», обработчик которого и обеспечивает ее появление в физической памяти. Для этого придется «подкачать» ее образ с устройства хранения. Если в ОЗУ не осталось нераспределенных страниц, то обработчику придется освободить какую-то страницу, выгрузив ее содержимое в так называемый «файл подкачки». Если с прошлой подкачки из файла данная страница не менялась, то выгрузка не требуется.

Дескрипторы страниц и каталогов находятся в памяти и занимают 64 бит. Эти дескрипторы процессору приходится автоматически считывать, на это тратится определенный промежуток времени. Для сокращения затрат времени введено кэширование описателей страниц – буфер ассоциативной трансляции. В этом буфере, расположенном в процессоре, хранятся последние использованные описатели страниц и старшая часть виртуального адреса.

При страничной трансляции адресов виртуальная логическая память делится на страницы одинакового размера. Любая страница может отображаться на любую область физической памяти. Отображение поддерживается с помощью специальных таблиц страничной трансляции адресов. Благодаря этому, страница памяти, не нужная в какой-то момент времени процессору, может быть выгружена на устройство хранения (диск). На ее место можно загрузить нужную страницу. Заявку на загрузку нужной страницы делает сам процессор. Если программе потребовалась ячейка виртуальной памяти из страницы, образа которой нет в физической памяти, вырабатывается специальное исключение. Обработчик этого исключения находит свободную физическую страницу, "подкачивает" на нее с диска нужную информацию и возвращает управление процессу, прерванному исключением.

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

Эффективность защиты (устойчивость ПК к ошибкам и вирусам) в значительной мере определяется предусмотрительностью разработчиков ОС. Вышеописанная защита от исполнения только в семействе OS Windows реализована только в SP2 для OS Windows XP
Вопросы:


  1. что такое страничная трансляция адресов?

  2. какие размеры имеют страницы линейного адреса?

  3. какие существуют варианты разбиения на страницы?

  4. для чего используются прерывания в работе ЦП?

  5. для чего используется защищенный режим процессора?

  6. какие основные механизмы предусмотрены для защиты в процессорах?


Разложение сложных процессов, происходящих в ПК, на элементарные поэтапные действия. Понятие стека.

События – прерывания и исключения.
Прерывания (interrupt) и исключения (exception) обобщенно называют событиями (event). Они нарушают нормальный ход выполнения программы. При возникновении события процессор сохраняет в стеке регистр и указатель на ту инструкцию, которую он должен будет выполнять после обработки события. Этой инструкцией будет следующая за той, во время исполнения которой произошло событие. В защищенном режиме при возникновении исключений в стеке сохраняется еще и код ошибки. После сохранения этих значений процессор переходит к исполнению кода обработчика данного события, определяя точку входа в него через номер по таблице прерываний (0 – 255). Номер элемента в таблице прерываний называется вектором прерывания, он определяется источником события. Обработчик события обязательно должен заканчиваться специальной инструкцией возврата, по которой из стека восстанавливается указатель на следующую инструкцию.

Различают четыре типа событий:




  • Внутренние прерывания (исключения) процессора и сопроцессора, вектор определяется типом произошедшего события.

  • Немаскируемые внешние прерывания, вектор фиксирован.

  • Маскируемые внешние прерывания, вектор передается контроллером прерываний.

  • Программно вызываемые прерывания, вектор определяется в команде.


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

Исключения подразделяются на три типа:




  • Отказ (fault) – исключение, возникающее до исполнения инструкции, когда процессор обнаруживает невозможность ее исполнения (например, обращение к отсутствующей странице памяти); состояние машины при этом не меняется.

  • Ловушка (trap) – исключение, возникающее в результате исполнения инструкции (например, деления на 0), при этом состояние машины под воздействием инструкции оказывается изменившимся.

  • Авария (abort) – исключение, для которого невозможно точно определить породившую его инструкцию. К этим исключениям относятся двойной отказ и исключения от средств машинного контроля.


Маскируемые внешние прерывания обрабатываются процессором по сигналу на входе только при установленном разрешении прерываний.

Немаскируемые прерывания обрабатываются процессором независимо от состояния разрешения прерывания.

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

В процессоры, начиная со второго поколения Pentium, введен усовершенствованный программируемый контроллер прерываний. Этот контроллер имеет внешние сигналы локальных прерываний и интерфейсную шину, по трем проводам которой процессор связывается с контроллером системной платы. Контроллеры каждого из процессоров и контроллер системной платы выполняют маршрутизацию прерываний, как статическую, так и динамическую.
Стек. Стек представляет собой непрерывную область памяти, адресуемую регистрами ESP – указатель стека и SS – селектор сегмента стека. Особенность стека заключается в том, что данные в него помещаются и из него извлекаются по принципу «первым вошел – последним вышел». Данные помещаются в стек с помощью инструкции PUSH – заталкивание, а извлекаются по инструкции POP – вытаскивание. Помимо явного доступа к стеку с помощью инструкций PUSH и POP стек используется процессором при выполнении инструкций вызова, возвратов, входа и выхода из процедур, а также при обработке прерываний.

До использования стека он должен быть инициализирован так, чтобы регистры SS – ESP указывали на область реальной оперативной памяти. Прикладные программы получают от ОС готовый к употреблению стек. В защищенном режиме сегмент состояния задачи содержит четыре селектора сегментов стека, но в каждый момент может быть задействован только один стек. Если для стека определен слишком маленький сегмент, то возможно переполнение стека (stack overflow). Переполнение в ОС защищенного режима вызывает срабатывание защиты, в ОС реального режима приводит к «вылетам» и «зависаниям». Переполнение может происходить при интенсивных прерываниях, когда до завершения обработки одного прерывания возникает и обрабатывается другое, более приоритетное.


Вопросы:

  1. что такое страничная трансляция адресов?

  2. какие размеры имеют страницы линейного адреса?

  3. какие существуют варианты разбиения на страницы?

  4. что такое стек?

  5. в каких случаях происходит переполнение стека?

  6. на какие виды делятся инструкции процессоров?

  7. на какие группы делятся прикладные инструкции процессоров?

  8. что называют событием при работе процессора?

  9. какие типы событий существуют?

  10. на какие типы подразделяются исключения?

  11. что такое страничная трансляция адресов?

  12. какие размеры имеют страницы линейного адреса?


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

Регистры общего назначения
При обработке данных значительная часть времени тратится на передачу данных между микропроцессором и памятью. Время доступа к данным уменьшается, если часто используемые операнды и результаты вычислений хранить в самом микропроцессоре. Четыре регистра EAX (AX), EBX (BX), ECX (CX), EDX (DX) специально предназначены для этих целей.

Когда был изобретен процессор 8086 – 80286, все регистры были 16-битные и назывались они AX, BX, CX, DX. Каждый из них состоял из 8-битных старшего и младшего байтов. Т.к. программистам часто приходилось использовать эти регистры, то их стали называть так: регистры старших байтов – AH, BH, СH, DH, а регистры младших байтов - AL, BL, CL, DL.

После появления процессора 20386, который был уже 32-битным, появились 32-битные регистры: ЕAX, ЕBX, ЕCX, ЕDX (Е в названии означает «32-битный»). Младшие регистры 16 бит каждого 32-битного регистра можно использовать как самостоятельные регистры. Все эти регистры называются регистрами общего назначения.

Регистр АХ(ЕАХ). Является основным сумматором и применяется для арифметических операций, строковых операций, операций ввода/вывода.

Регистр AL (младший байт регистра AХ) используется для команд:



  • умноженияmul и imul;

  • деления – div и idiv;

  • преобразования – xlat;

  • коррекции - aaa, aad, aam, aas, daa, das.

Регистр АН (младший байт регистра АХ) используется для задания функций обслуживающих подпрограмм (обработка прерываний).
Регистр ВХ (ЕВХ). Применяется в вычислительных операциях и в различных методах адресации. Это единственный регистр общего назначения, который можно использовать в качестве индекса элементов массива. Применяется в команде преобразования – xlat, для указания начала таблицы.

Регистр СХ (ЕСХ). Используется для управления числом повторений в циклических командах (счетчик). Применяется в командах сдвига для указания числа бит, на которое сдвигается содержимое операнда. Содержит число повторений строковых операций.

Регистр DX (EDX). Применяется в командах:

  • ввода/вывода – in, out;

  • умножения - mul, imul;

  • деления - div, idiv.


Регистровые указатели и индексные регистры.
Регистровые указатели SP и BP обеспечивают доступ к данным в сегменте стека. Регистр ВР используется также в различных методах адресации.

Индексные регистры SI и DI применяются в строковых операциях и в различных методах адресации.




Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   15




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет