Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






JMP имя






где операнд имя подчиняется тем же правилам, что и операнд команды CALL. Иначе говоря, он может иметь атрибут NEAR или FAR, быть прямым или косвен­ным. При прямом переходе команда JMP занимает три байта, если метка имя имеет атрибут NEAR, и пять байтов, если она имеет атрибут FAR. Например, команда

JMP М3

занимает три байта, если метка М3 находится в том же сегменте, или пять байтов, если она находится в другом сегменте. (В последнем случае, перед сегмен­том команды JMP должен быть указан псевдооператор EXTRN М3: FAR, a перед сегментом, содержащим метку, - псевдооператор PUBLIC М3.)

Если адрес метки находится не далее -128 или +128 байтов от адреса команды JMP, то можно сделать команду JMP двухбайтовой, указав, что ее операнд имеет тип SHORT (short — короткий). Например, команда

JMP SHORT М4

займет два байта. Обычно команда JMP используется для обхода группы команд, которым передается управление из другой части программы.

 

Jxx - команды условной передачи управления

 

У микропроцессора есть 17 различных команд, которые позволя­ют ему передавать управление той или иной команде, в зависимости от опре­деленных условий, например нулевого значения регистра или единичного значе­ния флага переноса CF. Если такое условие выполнено, то микропроцессор выполнит переход; в противном случае он продолжит исполнение со следующей команды программы. То есть процессор выполняет или не выполняет переход в зависимости от состояния флагов управления. Команды условной передачи управления имеют следующий общий формат:

Jx MP

где х - модификатор, состоящий из одной, двух или трех букв, МР – метка точки перехода. Команды условной передачи управления занимают в памяти два байта: первый байт содержит код операции, а второй - относительный сдвиг (адрес метки перехода). Поэтому метка перехода MP должна находиться не далее -128 или +127 байтов от команды условной передачи управления. Приведем несколько примеров команд условной передачи управления:

1. ADD AL, BL

JC TOOBIG

осуществляется переход к метке TOOBIG, если при сложении возник перенос.

2. SUB AL, BL

JZ ZERO

осуществляется переход к метке ZERO, если при вычитании в регистре AL оказался нулевой результат.

3. СМР AL, BL

JE ZERO

осуществляет переход к метке ZERO, если значения регистров AL и BL одинаковы. (Здесь можно было бы использовать эквивалентный мнемокод - JZ, но мнемо­код JE (jump if equal - перейти, если равно) в данном случае более содержателен.)

4. В зависимости от того, проверяется результат операции над числами без знака или над числами со знаком, применяются различные коман­ды условного перехода. Предположим, что требует­ся перейти к метке BXMORE, если содержимое регистра ВХ имеет большее значе­ние, чем содержимое регистра АХ. Тогда надо использовать последовательность команд

СМР ВХ, АХ

JA BXMORE

если операнды не имеют знака, и последовательность команд

СМР ВХ, АХ

JG BXMORE

если они имеют знак.

Командам условной передачи управления могут предшествовать любые команды, изменяющие состояния флагов, но обычно они используются совместно с командой сравнения СМР.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.