Рассмотрим пример использования данных таблиц при значении байта mod r / m равном 87 h .
Занятие 32(34)
Микропроцессоры АМ D К7. Структурная схема .
Микропроцессор следующего поколения — К7 кодовое имя Athlon .
Архитектура, реализованная в Athlon определяет суперскалярное, суперконвейерное выполнение команд, конвейерный блок вычислений с плавающей точкой, аппаратную предвыборку данных в кэш-память и усовершенствованную технологию предсказания ветвлений.
Athlon имеет девять исполнительных блоков: три для обработки целочисленных данных (IEU), три для вычисления адреса (AGU) и три блока для вычислений с плавающей точкой и обработки мультимедийных данных (один для загрузки/сохранения данных с плавающей точкой (FSTORE) и два конвейерных блока для исполнения команд (FPU/MMX/3DNOW). Длина целочисленного конвейера составляет 10 стадий, конвейера с плавающей точкой — 15 стадий. Команда FPU Athlon позволяет одновременно выполнять до двух команд с плавающей точкой.
Athlon может декодировать три команды х86 в шесть RISC-операций. После декодирования ROP попадают в буфер, где ожидают своей очереди на выполнение в одном из функциональных блоков процессора. Буфер К7 содержит 72 операции (в три раза больше чем у Кб) и выдает 9 ROP для 9 исполнительных устройств.
Athlon имеет 128 Кбайт кэш-памяти первого уровня (64 Кбайт для данных и 64 Кбайт для команд). Для взаимодействия с кэш-памятью второго уровня предусмотрена специальная шина. Кэш-память второго уровня размером 512 Кбайт расположена вне процессорного ядра, в процессорном картридже, и работает на половинной частоте ядра.
|
|
Занятие 33(35)
Микропроцессоры Hammer. Структурная схема
Новое семейство микропроцессоров АМD получило название Наmmег. Этот процессор производится по технологии 0,13 мкм с медными соединениями и изолированной подложкой . Микропроцессоры данного семейства являются 64-разрядными, однако в отличие от архитектуры 1А-64 1п1е1, обеспечивают совместимость с системой команд х86, в связи с чем архитектура получила название Х86-64.
Основные преимущества архитектуры х86-64 следующие: -- обратная совместимость с инструкциями х86;
- 64-битные версии регистров общего назначения;
- 8 новых РОН, доступных только для 64-битных приложений;
- величен объем адресуемой памяти;
- высокая производительность 32-битных приложений, поддержка 64-битных приложений.
Упрощенная структура микропроцессора Наmmег показана на рис, 2.15.
Создавая новую архитектуру, разработчики компании АМD стремились повысить производительность микропроцессора не только за счет увеличения тактовой частоты или числа вычислительных блоков, но и за счет повышения степени их загрузки. С этой целью в микропроцессор внесены следующие изменения:
|
|
- увеличена длина вычислительных конвейеров: целочисленного конвейера до 12 стадий, с плавающей точкой до 17 стадий;
- встроен контроллер памяти;
- усовершенствован блок предсказания ветвлений;
- встроен когерентный интерфейс НурегТгаnsport.
Размещая на кристалле контроллер памяти, АМD стремилась повысить производительность подсистемы обмена с основной памятью, которая в современных микропроцессорах является узким местом. Оптимальный для данного процессора и максимально приближенный к нему контроллер позволяет организовать эффективный обмен с памятью, минуя системную шину, на частоте работы ядра.
Процессоры с архитектурой Наmmег оснащаются 64- либо 128-битным контроллером памяти. Встроенный когерентный интерфейс НурегТгаnsport обеспечивает возможность использования Наmmег в мультипроцессорной конфигурации.
Улучшение блока предсказания ветвлений заключается в выявлении и учете информации о типе ветвлений: статическое ветвление, т. е. адрес перехода не изменяется, или динамическое.
Различия процессоров для одно- и многопроцессорных конфигураций заключаются, в основном, в размере кэш-памяти второго уровня и числе линков интерфейса НурегТгаnsport.
|
|
Технология HyperTransport™ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Технология HyperTransport™ – составляющая новой архитектуры AMD, представляющая собой высокопроизводительный интерфейс типа “точка-точка” предназначенный для связи интегральных микросхем и спроектированный для обеспечения необходимой пропускной способности для будущих вычислительных и коммуникационных платформ. Обеспечивая пиковую производительность до 12,8 Гб/c, технология HyperTransport™ предлагает идеальное решение для большинства требовательных к полосе пропускания системных приложений. Применение HyperTransport™ в вычислительных системах способствует увеличению общей производительности за счет устранения узких мест при передаче данных, увеличения пропускной способности и уменьшения задержек доступа. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Основные особенности технологии HyperTransport™: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
· Может объединять до 32 устройств;
· Требует небольшое количество сигнальных проводников, что значительно упрощает разработку системы;
· Использование низковольтных дифференциальных сигналов помогает решить проблемы перекрестных помех и электромагнитной совместимости;
· Продлевает жизненный цикл PCI, обеспечивая полную обратную совместимость с программной моделью PCI, драйверами и операционными системами при устранении узких мест и обеспечении пропускной способности необходимой для будущих быстродействующих чипов;
· Использование низковольтных дифференциальных сигналов позволяет проектировщикам эффективно использовать технологии энергосбережения и разрабатывать простые и дешевые платы;
· Поддержка ассиметричных связей и масштабируемость в скорости, ширине шины, частоте и направлении, позволяет разработчикам выбирать решение, соответствующее их задачам;
· Обеспечивает широкую полосу пропускания, что позволяет легко добавлять новые высокопроизводительные части;
· Сокращает время разработки проекта, поскольку добавление новых чипов может быть выполнено без полного перепроектирования системы.
Занятие 34 (36)
Двуядерные микропроцессоры
Корпорация AMD первой представила стратегию двухядерных процессоров архитектуры x86 и первой объявила о завершении разработки двухядерного процессора архитектуры x86 для 64-разрядных вычислений.
Двухядерный чип – это фактически два процессора в одном чипе. Преимущество такого процессора над одноядерным проявляется, прежде всего, при работе с многопоточными приложениями. Многопоточные задачи работают быстрее на двухядерных процессорах, потому что операционная система может распределять программные потоки отдельно по каждому ядру, в то время как на одноядерных процессорах задачи меняются по мере выполнения, то есть по очереди. Применение этой технологии позволит увеличить производительность процессоров нового поколения и одновременно избежать роста потребления энергии, которое накладывает ограничения на развитие одноядерных процессоров. Кроме того, чем выше частота процессора, тем больше он теряет производительность при обращении к памяти. Два ядра получаются предпочтительней, чем одно, так как в этом случае легче обеспечить процессор данными для обработки. Поскольку производительность памяти увеличивается медленнее, чем скорость процессоров, увеличение производительности путем использования нескольких ядер выглядит более предпочтительным, чем наращивание частоты.
Имеющееся процессорная архитектура AMD позволила интегрировать на тот же кристалл второе ядро при переходе на технологический процесс 90 нм. В процессорах архитектуры AMD64 с двумя ядрами дублированию подвергнуто само вычислительное ядро и кэш-память, в то время как контроллер памяти и контроллер HyperTransport остаются в двухядерных процессорах в неизменном виде. В этой связи ключевое значение начинает играть блок System Request Interface (SRI), на который возлагается обязанность арбитража потоков команд и данных между двумя ядрами.
Выпускаемые двухядерные процессоры AMD Opteron, имеют два раздельных кэша второго уровня объемом по 1 Мбайту, интегрированный контроллер памяти DDR SDRAM и три шины HyperTransport. Новые процессоры с парой ядер выпускаются в Socket 940 исполнении, совместимы с имеющимися системными платами, блоками питания и совпадают по тепловому конверту с однопроцессорными решениями (95 Вт), обеспечивая непревзойденную производительность на ватт потребляемой мощности.. Кроме того, двухядерные процессоры полностью совместимы со всеми приложениями архитектуры x86 и AMD64, демонструя высочайшую эффективность при работе в многозадачном и многопоточном режиме.
Занятие (37)
Особенности программирования на языке Ассемблер
Формат машинных команд IA -32
Машинная команда представляет собой закодированное по определенным правилам указание процессору на выполнение некоторой операции. Правила кодирования команд называются форматом команд. Команды процессоров архитектуры IA-32 считаются сложными. Максимальная длина машинной команды IA-32 составляет 15 байт. Реальная команда может содержать гораздо меньшее количество полей, вплоть до одного — только код операции. Приведенный на рис. 3.1 формат машинной команды является наиболее полным.
Как на уровне формата машинной команды соответствуют между собой машинные команды и команды ассемблера?
Для примера рассмотрим типичную команду языка ассемблера:
mov ebx, еах
Команда M0V производит копирование содержимого регистра ЕАХ в регистр ЕВХ. Соответствующая машинная команда будет выглядеть так:
88 D 8
Значение 8В — код операции.
Еще один пример команды M0V есх, 128
Данная команда инициализирует содержимое регистра ЕСХ десятичным значением 128. Соответствующая машинная команда выглядит так:
89 00000080
Значение поля с кодом операции — В9. Из примеров видно, что прямого соответствия между структурой команды ассемблера и соответствующей машинной командой нет. Несмотря на то, что команда ассемблера одна и та же (M0V), коды машинных команд — разные (8В и В9). Большинство команд ассемблера имеют несколько возможных вариантов сочетания операндов. Как показано в приведенных примерах, несмотря на одинаковые названия команд ассемблера, для каждого возможного сочетания операндов имеется своя машинная команда, со своим значением поля кода операции (рис. 3.1). Это говорит о том, что машинная команда всегда однозначна по отношению к производимым ею действиям на уровне аппаратуры. Несколько упрощая реальность, можно утверждать, что значение в поле кода операции является номером микропрограммы в блоке микропрограммного управления для каждой конкретной команды ассемблера с каждым конкретным вариантом сочетания операндов.
Логически любая команда языка ассемблера содержит несколько элементов.
Элемент, описывающий, что делать, называется кодом операции (КОП). Значение в поле кода операции некоторым образом определяет в блоке микропрограммного управления подпрограмму, реализующую действия для данной команды.
Элементы, описывающие объекты, с которыми нужно что-то делать, являются операндами. Операнды в команде могут и не задаваться, а подразумеваться по умолчанию.
Элементы, описывающие, как делать, являются типами операндов и обычно задаются неявно. Они используются транслятором ассемблера при формировании машинной команды для определения значения поля кода операции. Эти же элементы имеет и машинная команда, но в закодированном виде. Перевод команд ассемблера в соответствующие машинные команды осуществляет специальная программа ~- ассемблер, которую можно также назвать транслятором (компилятором) ассемблера.
Поле префиксов
Префиксы — необязательные однобайтные элементы машинной команды. Назначение префиксов — изменить действия, выполняемые командой. Префиксы могут указываться программистом явно при написании исходного текста программы, либо их, по определенным соображениям, может вставить ассемблер. Процессор распознает префиксы по их значениям. Машинная команда может иметь до четырех префиксов одновременно. В памяти префиксы предшествуют команде. Порядок их следования при этом может быть любым.
Далее перечислены типы префиксов, которые может использовать прикладная программа.
Префикс замены сегмента в явной форме указывает, какой сегментный регистр используется в данной команде для адресации стека или данных. Префикс отменяет выбор сегментного регистра по умолчанию. Префиксы замены сегмента имеют следующие значения:
2Eh — замена сегмента CS;
36h — замена сегмента SS;
3Eh — замена сегмента DS;
26h — замена сегмента ES;
64h — замена сегмента FS;
65h — замена сегмента GS.
Префикс повторения используется с цепочечными командами (командами обработки строк). Этот префикс «зацикливает» команду для обработки всех элементов цепочки. Система команд поддерживает два типа префиксов: безусловные ( REP — 0F3h), заставляющие цепочечную команду повторяться некоторое количество раз, и условные (REPE/REPZ — 0F3h, REPNE/REPNZ — 0F2h), которые при зацикливании проверяют некоторые флаги, и в результате проверки возможен досрочный выход из цикла.
Префикс блокировки шины инициирует выдачу процессором сигнала L0CK# (значение OFOh) для блокировки системной шины. Используется в многопроцессорных конфигурациях для обеспечения монопольного владения системной шиной. Сигнал L0CK# может формироваться лишь с определенной номенклатурой команд процессора, работающих в цикле «чтение-модификация-запись».
Префикс размера адреса (значение 67h) уточняет разрядность адреса: 16 или 32 бита. Каждой команде, в которой используется адресный операнд, ставится в соответствие разрядность адреса этого операнда. Если разрядность адреса для данной команды составляет 16 битов, это означает, что команда содержит 16-разрядное смещение и оно соответствует 16-разрядному смещению адресного операнда относительно начала некоторого сегмента (см. рис. 3.1). В контексте материала главы 2 (см. рис. 2.7 и 2.8) это смещение называется эффективный адресом. Если разрядность адреса составляет 32 бита, это означает, что команда содержит 32-разрядное смещение, оно соответствует 32-разрядному смещению адресного операнда относительно начала сегмента и по его значению формируется 32-разрядное смещение в сегменте (см. рис. 3.1). С помощью префикса разрядности адреса можно изменить действующее по умолчанию значение разрядности адреса. Это изменение будет касаться только той команды, которой предшествует префикс.
Префикс размера операнда (значение 66h) аналогичен префиксу размера адреса, но указывает на разрядность операндов (32 или 16 битов), с которыми работает команда.
По каким правилам устанавливаются по умолчанию значения атрибутов разрядности адреса и операндов? Если команда имеет операнд в памяти, то его адрес представляет собой значение смещения относительно начала сегмента данных (если не используется префикс переопределения сегмента) и содержится в поле смещения машинной команды. Размер этого поля зависит от текущего режима адресации (атрибуты usel6 или use32 в директивах сегментации). При 16-разрядной адресации размер поля смещения в машинной команде составляет 16 битов. При 32-разрядной адресации размер поля смещения в машинной команде составляет 32 бита. Явное задание префикса размера адреса позволяет указать процессору значение, отличающееся от действующего по умолчанию. Например, если действующий размер адреса равен 16 битам, то использование перед какой-либо командой префикса 67h определит для нее (и только для нее!) размер адреса в 32 бита. И наоборот, если действующий размер адреса равен 32 бита, то указание перед командой префикса 67h определит для нее (и только для нее!) размер адреса в 16 битов. Физически это будет отражаться на размере поля смещения в данной машинной команде.
Префикс размера операнда ббп позволяет сменить действующий для данной команды атрибут размера операнда. Команда, которая по умолчанию работает со словом (16 битов) или с двойным словом (32 бита), имеет атрибут размера операнда, равный 16 и 32 бита соответственно. Применение префикса размера операнда позволяет сменить действующий по умолчанию атрибут.
При работе процессора i 8086 в реальном и виртуальном режимах атрибуты размера адреса и операнда по умолчанию равны 16 битов. В защищенном режиме зна чения этих атрибутов зависят от значения бита D дескриптора сегмента. Если D = 0, то атрибуты размера адреса и операнда равны 16 битов, если D = 1, то эти атрибуты рав ны 32 бита. Изменить действующие по умолчанию атрибуты адреса и размера операндов можно применением атрибутов usel 6 или use 32 в директивах сегментации.
Занятие (38)
Особенности программирования на языке Ассемблер
Код операции
Код операции — обязательный элемент, описывающий операцию, выполняемую командой. Код операции может занимать от одного до трех байт. Для некоторых машинных команд часть битов кода операции может находиться в байте mod r/m.
Многим командам соответствует несколько кодов операций, каждый из которых определяет нюансы выполнения операции. Отметим, что поле кода операции не имеет однозначной структуры (см. рис. 3.1). В зависимости от конкретных команд, не обязательно разных с точки зрения языка ассемблера, оно может иметь в своем составе от одного до трех элементов, назначение которых описано в табл. 3.2. Один из этих трех элементов является непосредственно кодом операции или ее частью, остальные уточняют детали операции. Такое строение поля кода операции усложняет, в частности, процесс дизассемблирования. Для определения размера и границ очередной команды необходимо полностью проанализировать ее Поле кода операции.
Байт режима адресации mod r / m
Байт режима адресации mod r / m , иногда называемый постбайтом, несет информацию об операндах и режиме адресации. Большинство команд процессора Intel — двухоперандные. Операнды могут находиться в памяти, а также в одном или двух регистрах. Архитектура IA-32 не допускает, чтобы оба операнда команды находились в памяти. Если операнд находится в памяти, то байт mod r/m определяет компоненты (смещение, базовый и индексный регистры), используемые для вычисления его эффективного адреса (см. главу 2). Байт mod r/m состоит из трех полей (см. рис. 3.1).
- Поле mod (два бита) определяет способ адресации и количество байтов, занимаемых в команде адресом операнда (поле смещения в команде). Поле mod используется совместно с полем r/m, которое определяет способ модификации адреса операнда полем смещения в команде. Поле mod в комбинации с полем r/m образует 32 возможных значения, обозначающих один из восьми регистров и 24 режима адресации. К примеру,
- если mod = 00, то поле смещения в команде отсутствует и адрес операнда определяется содержимым базового и/или индексного регистра. Какие именно регистры потребуются для вычисления эффективного адреса, определяется значением этого байта.
- Если mod = 01, то поле смещения в команде присутствует, занимает один байт и модифицируется содержимым базового и/или индексного регистра.
- Если mod = 10, то поле смещения в команде присутствует, занимает два или четыре байта (в зависимости от значения, действующего по умолчанию или определяемого префиксом размера адреса) и модифицируется содержимым базового и/или индексного регистра.
- Если mod = 11, то операндов в памяти нет — они находятся в регистрах. Это же значение байта mod используется в случае, когда команда работает с непосредственным операндом.
- Поле reg (3 бита) определяет либо регистр (табл. 3.3 и 3.4), находящийся в команде на месте второго операнда, либо возможное расширение кода операции (давая в совокупности размер поля КОП в 11 битов).
- Поле r / m используется совместно с полем mod и определяет либо регистр, находящийся в команде на месте первого операнда (если mod = 11), либо базовые и индексные регистры, применяемые для вычисления эффективного адреса (совместно с полем смещения в команде).
Таблица 3.3. Значения кодов в поле reg (поле w присутствует в команде)
Таблица З .4. Значения кодов в поле reg (поле w отсутствует)
В таблицах нет содержимого поля reg для 16-разрядных регистров в 32-разрядых операциях, так как в архитектуре Intel отдельно использовать старшую половину 32-разрядного регистра невозможно. В архитектуре Intel один из операндов обязательно находится в регистре, и он может быть первым или вторым. Расположение первого и второго операндов в формате команды фиксировано. Но, например, команда M0V может выполнять пересылку как из регистра в память, так и из памяти в регистр. В машинном представлении это одна и та же команда. В ее поле reg будет содержаться код регистра (см. табл. 3.3 и 3.4), а в поле r/m — код режима адресации (см. далее). Эти две команды будут различаться только одним битом d, который определяет направление передачи. Если в команде участвуют два регистра, то в этом случае вступает в силу правило: поле reg определяет второй операнд, а поле r/m — первый. Если команда mov работает с ячейкой памяти, то в исходном тексте программы могут быть следующие варианты записи этой команды: mov abl1.ax ;пересылка содержимого ах в ячейку памяти abl1 или В машинном представлении эти две команды будут выглядеть одинаково, за исключением бита d: - для команды MOV abll,ax бит d = 0; - для команды MOV ax,abll бит d = 1. Наиболее сложными для декодирования являются команды с операндом в памяти. Фирма Intel сопровождает описание системы команд специальными таблицами, облегчающими интерпретацию содержимого байта mod r/m (табл. 3.5 и 3.6). С их помощью можно довольно легко восстановить компоненты, из которых формировался адрес операнда, и, в конечном итоге, восстановить соответствующую команду ассемблера для данной машинной команды.
Таблица 3.5. Значения байта mod r/m (16-разрядная адресация)
Таблица З .6. Значения байта mod r/m (32-разрядная адресация)
Продолжение
Рассмотрим пример использования данных таблиц при значении байта mod r / m равном 87 h . Для восстановления местонахождения операндов данной машинной команды следует найти это значение в одной из таблиц (какой таблицей воспользоваться, зависит от текущего режима адресации) и по первому столбцу строки, содержащей код 87 h, определить местонахождение первого операнда. В нашем случае адрес операнда формируется из содержимого регистра ВХ и 16-разрядного смещения, значение которого следует искать в следующих за байтом mod r/m двух байтах. Второй столбец той же строки содержит значение поля mod. Третье поле байта mod r/m можно найти, переместившись вверх по столбцу, содержащему значение 87h, до пересечения со строкой reg или /цифра. При этом будет выбрано значение, идентифицирующее один из регистров или продолжение кода операции. Что именно — определяется либо самим кодом операции, либо значением бита w в сочетаний с текущей разрядностью адреса (см. ранее). При использовании 32-разрядной адресации содержимое байта mod r/m трак-туется несколько иначе из-за наличия в формате машинной команды байта sib I (см. подраздел «Байт масштаба, индекса и базы»). Некоторые машинные команды могут работать с сегментными регистрами. Далее приведены соглашения по кодированию сегментных регистров. В дальнейшем изложении будем различать два набора регистров: - sreg 86 — сегментные регистры, существовавшие в архитектуре процессоров 18086/88 и i80286; - sreg 386 — сегментные регистры архитектуры процессоров i80386 и выше. Различие наборов состоит в том, что кодируются они различным количеством битов: sreg86 — двумя битами (табл. 3.7), a sreg386 — тремя (табл. 3.8). Таблица 3.7. Кодировка сегментных регистров в наборе sreg 86
Таблица 3.8. Кодировка сегментных регистров в наборе sreg386
Одна из целочисленных команд — команда M0V — может оперировать системными регистрами. Кодировка этих регистров приведена в табл. 3.9. таблица 3.9. Кодировка системных регистров в команде MOV
Мы поможем в написании ваших работ! |