Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Команды сдвига/циклического сдвига





Команды сдвига и циклического сдвига представляют собой часть логических возможностей процессора Pentium II. Рассмотрим главные особенности команд сдвига:

  • логический сдвиг – выдвинутый бит пропадает, а освободившийся разряд заполняется 0;
  • арифметический сдвиг – аналогичен логическому сдвигу, но при этом знаковый бит не изменяется;
  • циклический сдвиг – представляет собой операцию сдвига, при которой выдвинутый бит занимает освободившийся разряд.

Ниже приведены команды логического, арифметического и циклического сдвига.

 

SAL/SAR DST, #   Арифметический сдвиг DST влево/вправо на # битов  
SHL/SHR DST, #   Логический сдвиг DST влево/вправо на # битов  
ROL/ROR DST, #   Циклический сдвиг DST влево/вправо на # битов  
ROL/ROR DST, #   Циклический сдвиг DST по переносу на # битов  

 

Команды тестирования/сравнения

Связаны с проверкой и сравнением, а затем осуществлением перехода, в зависимости от полученного результата. Результаты проверки и срав­нения хранятся в различных битах регистра EFLAGS. Ниже приведены команды проверки и сравнения.

 

TST SRC1, SRC2   Операнды логической операции И, установка флагов  
CMP SRC1, SRC2   Установка флагов на основе вычитания SRC1-SRC2  

 

Команды передачи управления

К командам передачи управления относятся команды безусловных переходов (JMP), вызов процедур (CALL), условных переходов (Jxx) и др. Значок Jxx стоит вместо набора команд, которые совершают условный переход в зависимости от результа­тов предыдущего сравнения (то есть в зависимости от битов в регистре EFLAGS). Ниже приведены примеры команд передачи управления.

 

JMP ADDR   Переход к адресу  
Jxx ADDR   Условные переходы на основе флагов  
CALL ADDR   Вызов процедуры по адресу  
RET   Выход из процедуры  
LOOPxx   Продолжает цикл до удовлетворения определенного условия  

 

Команды для операций над цепочками

В Pentium II есть несколько команд для загрузки, сохранения, перемещения, сравнения и сканирования цепочек символов или слов. Перед этими командами может стоять специальный префиксный байт REP (repetition – повторение), ко­торый заставляет команду повторяться до тех пор, пока не будет выполнено опре­деленное условие (например, пока регистр ЕСХ, значение которого уменьшается на 1 после каждого повторения, не будет равен 0). Таким образом, различные действия (перемещение, сравнение и т. д.) могут производиться над произвольными блоками данных (цепочками). В таблице приведены примеры команд для операций над цепочками.

 

LODS   Загружает цепочку  
STOS   Сохраняет цепочку  
MOVS   Перемещает цепочку  
CMPS   Сравнивает две цепочки  
SCAS   Сканирование цепочки  

 

Команды управления флаговым регистром

Здесь объединены команды, позволяющие управлять регистром EFLAGS. Ниже приведены примеры команд управления этим регистром.

 

STC   Устанавливает бит переноса в регистре EFLAGS  
CLC   Сбрасывает бит переноса в регистре EFLAGS  
CMC   Образует дополнение бита переноса в регистре EFLAGS  
STD   Устанавливает бит направления в регистре EFLAGS  
CLD   Сбрасывает бит направления в регистре EFLAGS  
PUSHFD   Помещает регистр EFLAGS в стек  
POPFD   Выталкивает содержимое регистра EFLAGS из стека  
LAHF   Загружает АН из регистра EFLAGS  
SAHF   Сохраняет АН в регистре EFLAGS  

 

Прочие команды

Последняя группа содержит команды, которые не вошли ни в одну из предыду­щих групп. Это команды перекодирования, команды управления, команды ввода-вывода и команды остановки процессора.

 

SWAP DST   Изменяет порядок байтов DST  
CWQ   Расширяет ЕАХ до EDX:EAX для деления  
SWDE   Расширяет 16-битное число в АХ до ЕАХ  
ENTER SIZE, LV   Создает стековый фрейм с байтами размера  
LEAVE   Удаляет стековый фрейм, созданный командой ENTER  
NOP   Пустая операция  
HLT   Останов  
IN AL, PORT   Переносит байт из порта в АЛУ  
OUT PORT, AL   Переносит байт из АЛУ в порт  
WAIT   Ожидает прерывания  

 

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

  • команды Pentium II представляют собой смесь команд 32-битного формата и команд, которые восходят к процессору 8088;
  • из всей массы команд можно выделить основные: команды перемещения, арифметические, логические, сравнивания и передачи управления.

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

Вспомните и назовите основные группы команд. Какие команды относятся к той или иной группе?

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

1. Напишите программу:

· загрузить 320h в регистр EAX;

· сравнить EAX с нулем;

· прибавить 40h к содержимому регистра EBX;

· сдвинуть содержимое регистра EBX на бит влево.

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Напишите программу для обмена местами содержимого регистров EAX и EBX. Напишите еще один вариант программы, не используя еще один регистр или переменную (подумайте о команде ИСКЛЮЧАЮЩЕЕ ИЛИ).

___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. Используя регистры EAX и EBX, вычислите логическое выражение (A И B) ИЛИ C. Поместите результат в регистр EAX.

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

 








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

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

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

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





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


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