Адресация переходов. Внутрисегментный прямой переход. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Адресация переходов. Внутрисегментный прямой переход.



Адрес следующей команды определяется суммированием смещения со знаком, представленным в двоично-дополнительном коде, и значения IP:

 

 

Пример: jmp 100

 

Адресация переходов. Внутрисегментный косвенный переход.

Содержимое регистра IP заменяется содержимым регистра или слова памяти, заданным любым методом адресации, кроме непосредственного:

 

 

Пример: jmp [bx]

 

Адресация переходов. Межсегментный прямой переход.

Содержимое регистров CS и IP заменяются словами из команды:

 

 

Адресация переходов. Межсегментный косвенный переход.

Содержимое регистров CS и IP заменяется словами, последовательно расположенными в памяти. Слова могут быть указаны любым методом адресации, кроме непосредственного:

 

 

Система команд.

 

Команды передачи данных

предназначены для пересылок данных между регистрами и памятью. Эту группу команд можно разделить на четыре подгруппы: команды пересылки данных общего назначения; команды, использующие аккумулятор; команды пересылки адресных объектов; команды пересылки флагов. Все команды этой группы не влияют на установку флагов, за исключением команд SAHF и POPF.

 

Пример: mov ax, bx

 

 


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

предназначены для выполнения четырех основных видов арифметических действий над 8- и 16- разрядными операндами в знаковом и беззнаковом представлении. Кроме основных арифметических команд имеются операции коррекции арифметических результатов для их перевода в упакованную или неупакованную форму. Признаки полученного результата отображаются в 6 битах регистра Flags (CF, AF, SF, ZF, PF и OF).

 

Пример: add ax, bx

 

 

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

предназначены для выполнения четырех логических действий над 8- и 16-битовыми логическими структурами: получение инверсного кода, логическое произведение, логическая сумма, сумма по модулю два. Команды AND, TEST, OR и XOR воздействуют на арифметические флаги следующим образом: флаги OF и CF всегда сбрасываются в нулевое состояние; состояния флагов SF, ZF, PF зависят от полученного результата и определяются по тем же правилам, что и в командах арифметических операций; состояние флага AF не определено. Команда NOT не влияет на состояние флагов.

 

Пример: not ax

 

Команды сдвига

предназначены для выполнения логических, арифметических и циклических сдвигов. Поле операнда имеет формат mem/reg, count. Здесь mem/reg адресует регистр или ячейку памяти, а count (счет или счетчик) определяет число сдвигов. Число сдвигов может быть указано как константа 1 (статический сдвиг) или как регистр CL. В первом случае осуществляется сдвиг на один байт, а во втором - число сдвигов определяется содержимым регистра CL, которое должно быть беззнаковым целым двоичным числом. Таким образом, число сдвигов можно задать переменной, вычисляемой во время выполнения программы (так называемый динамический сдвиг). При выполнении команд сдвигов флаги изменяются следующим образом:

  1. состояние флага AF всегда не определено;
  2. флаг CF всегда содержит значение последнего выдвинутого бита;
  3. в однобитных сдвигах флаг OF=0, если операция изменила значение старшего (знакового) бита операнда; при сдвиге на несколько бит состояние флага OF не определено;
  4. циклические сдвиги влияют только на флаги OF и CF;
  5. в арифметических и логических сдвигах флаги SF, ZF и PF изменяются в соответствии с полученным результатом.

 

Пример: shl ax, 1

 

 

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

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

 

Пример: jmp 110

Пример: call 110

 

 


Команды условных переходов

обеспечивают только внутрисегментные переходы.

 

 



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 187; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.42.94 (0.009 с.)