Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Косвенная регистровая адресация





При таком способе адресации определяемый операнд берется из памяти или от­правляется в память, но адрес не фиксируется жестко в команде, как при прямой адресации. Вместо этого адрес содержится в регистре. Если адрес используется таким образом, он называетсяуказателем. Преимущество косвенной адресации состоит в том, что можно обращаться к памяти, не имея в команде полного адреса. Кроме того, при разных выполнениях данной команды можно использовать раз­ные слова памяти. Пример команды для загрузки числа, адрес которого находится регистре EBX, в регистр EAX (т.е. регистр EBX является указателем) приведен ниже:

MOV EAX, [EBX]

Базовая адресация

Часто нужно уметь обращаться к словам памяти по известному смещению. Подоб­ное мы видели в примере реализации микроархитектуры, где локальные переменные определяются по смещению от регистра LV. Обращение к памяти по регистру и константе смещения называетсябазовой адресацией. Пример команды для загрузки числа, адрес которой задается регистром EBX (база) и величиной const, в регистр EAX приведен ниже:

MOV EAX, [EBX+const] или

MOV EAX, [EBX]+const

Индексная адресация

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

 

pole DW x0, x1, x2, x3,...

...

MOV ESI, 0; индекс элемента (x0)

MOV EAX, pole[ESI]; AEX = x0

 

Подведем итоги

  • команды обычно имеют 1, 2 или 3 операнда, обращение к которым происходит с помощью различных способов адресации: непосредственной, прямой, регистровой, индексной и т.д.;
  • обычно в команде отводится специальное поле, отвечающее за способ адресации. В процессоре Pentium II за способ адресации отвечает поле MODE.

Вопросы для самоконтроля

1. Назовите известные Вам способы адресации. В чем заключается суть каждого из способов?

2.

Подумайте, почему так много способов адресации? Почему не обойтись, например, только непосредственной адресацией?

Индивидуальные задания

Попытайтесь объяснить следующие операции команды:

· ADD EAX, [EBX];

· JMP [EAX]+100h;

· MOV ESI, EAX.

_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Тема 5.6. Команды процессора Pentium II

В результате изучения данной темы Вы будете:

  • иметь представление об основных командах процессора Pentium II.

Команды Pentium II представляют собой смесь команд 32-битного формата и команд, которые восходят к процессору 8088. Ниже приведены наибо­лее распространенные команды с целыми числами, которые широко используют­ся в настоящее время. Этот список далеко не полный, поскольку в него не вошли команды с плавающей точкой, команды управления, а также некоторые редкие команды с целыми числами (например, использование 8-битного байта для вы­полнения поиска по таблице). Тем не менее, этот список дает представление о том, какие действия может выполнять Pentium II.

Многие команды Pentium II обращаются к одному или к двум операндам, кото­рые находятся или в регистрах, или в памяти. Например, бинарная команда ADD складывает два операнда, а унарная команда INC увеличивает значение одного опе­ранда на 1. Некоторые команды схожи, например, команды сдвига могут сдвигать слово либо вправо, либо влево, а также могут рас­сматривать знаковый бит особо или нет. Большинство команд имеют несколько различных кодировок в зависимости от природы операндов,

Поля SRC – это источники информации (SOURCE), они не изменяются. Поля DST – это пункты назначения (DESTINATION), они обычно изменяются командой. Существуют правила, определяющие, что может быть источником, а что пунктом назначения, но здесь мы не будем говорить о них.

Многие команды имеют три варианта: для 8-, 16- и 32-битных операндов соответственно. Ниже приведе­ны в основном 32-битные команды.

Команды перемещения

Ниже приведены команды, которые перемещают данные между частями машины: регистра­ми, памятью и стеком.

 

MOV DST, S, ]   ;l;’ /;.l,kkml.;/’?.jkil,;.’/ l;’ 0p[‘pRC Перемещает SRC в DST
PUSH SRC Помещает SRC в стек
POP DST Выталкивает слово из стека и помещает его в DST
XCHG DS1,DS2 Меняет местами DS1 и DS2
LEA DST, SRC Загружает действительный адрес SRC в DST
CMOV DST, SRC Условное перемещение

 

Арифметические команды

Арифметические команды включают арифметические операции над числами со зна­ком и без знака. Для умножения и деления 64-битное произведение или делимое хранится в двух регистрах: ЕАХ (младшие биты) и EDX (старшие биты). Пример рассматриваемых команд приведен ниже.

 

ADD DST, SRC   Складывает SRC и DST  
SUB DST, SRC   Вычитает SRC из DST  
MUL SRC   Умножает ЕАХ на SRC (без знака)  
IMUL SRC Умножает ЕАХ на SRC (со знаком)  
DIV SRC   Делит EDX:EAX на SRC (без знака)  
IDV SRC Делит EDX:EAX на SRC (со знаком)  
ADC DST, SRC Складывает SRC с DST и прибавляет бит переноса  
SBB DST, SRC   Вычитает DST и переносит из SRC  
INC DST   Прибавляет 1 к DST  
DEC DST   Вычитает 1 из DST  
NEG DST   Отрицает DST (вычитает DST из 0)  

 

Двоично-десятичные команды

Включают в себя двоично-десятичную арифметику. Здесь каждый байт рассматривается как два 4-битных полубайта, каждый полубайт содержит 1 деся­тичный разряд (от 0 до 9). Комбинации битов от 1010 до 1111 не используются. Таким образом, 16-битное целое число может содержать десятичное число от 0 до 9999. Хотя такая форма хранения неэффективна, она устраняет необходимость переделывать десятичные входные данные в двоичные, а затем обратно в десятич­ные для вывода. Эти команды используются для выполнения арифметических действий над двоично-десятичными числами. Пример рассматриваемых команд приведен ниже.

 

DAA   Десятичная коррекция  
DAS   Десятичная коррекция для вычитания  
ААА   Коррекция кода ASCII для сложения  
AAS   Коррекция кода ASCII для вычитания  
ААМ   Коррекция кода ASCII для умножения  
AAD   Коррекция кода ASCII для деления  

 

Логические команды

Логические команды и команды сдвига манипулируют битами в слове или байте. Ниже перечислены логические команды, поддерживаемые процессором Pentium II.

 

AND DST, SRC   Логическая операция И над SRC и DST  
OR DST, SRC   Логическая операция ИЛИ над SRC и DST  
XOR DST, SRC   Логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ над SRC и DST  
NOT DST   Замещение DST дополнением до 1  

 







ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.