Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 59

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 53 54 55 56 57 58 < 59 > 60 61 62 63 64 65 .. 528 >> Следующая

регистров EIP (IP) и CS (при межсегментном переходе) содержимое указателя
стека ESP (или SP) увеличивается на величину im16. Таким образом, из
стека исключается число ячеек памяти, равное im16. Эта команда производит
очистку сегмента стека от использованных в программе параметров, если они
не требуются для продолжения выполнения основной программы.
Команды условных переходов Jcc выполняют переходы только в пределах
текущего сегмента кодов с использованием относительной адресации. При
выполнении заданного условия производится переход к команде,
относительный адрес которой в сегменте кодов равен (1Р+ге18,16) или
(EIP+rel8,32), гдеге!8,16 или 32 представляете-, 16-или32-разрядное
смеще-
СИСТЕМА КОМАНД: ОПЕРАЦИИ УПРАВЛЕНИЯ
ние со знаком. Таким образом, допускаются переходы к ячейкам памяти,
размещенным в текущем сегменте кодов перед командой Jcc или после нее.
Возникающие при вычислении этих относительных адресов переносы не
учитываются. Имеется две модификации команд Jcc: короткие и длинные
переходы. Первая модификация использует 8-разрядное смещение (ге18),
вторая модификация использует 16- или 32-разрядное смещение (ге116 или
rel32) в зависимости от разрядности адреса, устанавливаемой режимом
работы микропроцессора или соответствующим префиксом перед командой Jcc.
В подгруппу входят 16 команд, различающихся условием выполнения перехода
сс (табл. 2.22). Соответствующие мнемокоды условий добавляются к букве J
(JUMP), образуя мнемокод команды, например: J+O -JO- мнемокод команды
условного перехода по переполнению. Условие определяется значением
отдельных признаков или их комбинацией.
В качестве условия часто используется относительное значение двух
операндов, определяемое с помощью команды сравнения СМР. Равенство
операндов определяется значением признака нуля ZF после команды СМР:
равно Е/Z (результат равен 0); не равно NE/NZ (результат не равен 0).
Если сравниваются беззнаковые операнды, то соотношение их значений (выше
- ниже - равно) определяют условия:
• ниже (не выше и не равно) (<) B/NAE;
• не ниже (выше или равно) (>=) NB/AE;
• ниже или равно (не выше) (<=) BE/NA;
• не ниже и не равно (выше) (>) NBE/A.
Отметим, что команды JB/JNAE и JNB/JAE эквивалентны командам переходов по
наличию переноса JC или отсутствию переноса JNC. "
Таблица 2.21 ь
Команды передачи управления и прерывания я.
Синтаксис команды Операция
JMP NEAR rel(8,16,32) r/m(16,32) JMP FAR ptr(16:16, 16:32) т(16:1б,
16:32) EIP(IP) + rel -> EIP(IP) E IP(IP) + r/m -> EIP(IP) ptrl6 ->
CS, ptr(16,32) -> IP, EIP m16 -> CS, m(16,32) -> IP, EIP
CALL NEAR rel(16,32) r/m(16,32) CALL FAR ptr(16:16, 16:32) m(16:16,
16:32) EIP(IP) -> стек, EIP(IP) + rel -> EIP(IP) EIP(IP) -> стек,
EIP(IP) + r/m -> EIP(IP) CS.EIP(IP) -> стек, ptr(16,32) -> IP, EIP
CS.EIP(IP) -> стек, m16 -> CS, m(16,32) -> IP, EIP
RET NEAR (im16) RET FAR (im16) стек -> EIP(IP); (SP + im16-> SP) стек
-> EIP(IP), CS; (SP + im16 -> SP)
Jcc rel(8,16,32) EIP(IP) + rel -> EIP(IP), если (cc) = 1
JECXZ (JCXZ) re!8 LOOP rel8 LOOPE(Z) rel8 LOOPNE(NZ) rel8 ECX-1 ->
ECX; EIP + rel8 -> EIP, если ЕСХ = 0 ECX-1 -> ECX; EIP + rel8 -> EIP,
если ECX * 0 ECX-1 -> ECX; EIP + rel8 -* EIP, если ECX / 0 или ZF=1 ECX-1
-> ECX; EIP + rel8 -> EIP, если ECX t 0 или ZF=0
1NT im8 1NT3 INTO UD2 EFLAGS,CS,EIP -> стек, Ve -> CS, EIP EFLAGS,CS,EIP
-> стек, Ve(#3) -> CS, EIP EFLAGS,CS,EIP -> стек, Ve(#4) -> CS, EIP, если
OF=1 EFLAGS,CS.EIP -н> стек. Vef#7) -h> CS. EIP
IRET стек -> EIP, CS, EFLAGS
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.22
Виды условий при выполнении условных операций
Мнемокод Условие (сс=1) Мнемокод Условие (сс=1)
0 Переполнение OF=1 N0 Нет переполнения OF=0
В (NAF) Ниже (не выше и не равно) CF=1 NB (АЕ) Не ниже (выше или
равно) CF=0
E(Z) Равно (нуль) ZF=1 NE (NZ) Не равно (не нуль) ZF=0
BE(NA) Ниже или равно (не выше) CF v ZF = 1 NBE (А) Не ниже и
не равно (выше) CF v ZF = 0
S Отрицательный знак SF=1 NS Положительный знак SF=0
Р (РЕ) Четность PF=1 NP (РО) Нечетность PF=0
L (NGE) Меньше (не больше и не равно) SF (c) OF = 1 NL (GE) Не
меньше (больше или равно) SF (c) OF = 0
LE(NG) Меньше или равно (не больше) (SF (c) OF) v ZF = 1 LNE (G)
Не меньше и не равно (больше) (SF (c) OF) v ZF = 1
Если сравниваются операнды со знаком, то соотношение между ними (больше -
меньше - равно) определяют условия:
• меньше (не больше и не равно) (<) < L/NGE;
• не меньше (больше или равно) (>=) NL/GE;
• меньше или равно (не больше) (<=) LE/NG;
• не меньше и не равно (больше) (>) NLE/G.
Команды организации циклов осуществляют условный переход в зависимости от
значения содержимого регистра ЕСХ (или СХ), которое автоматически
уменьшается на единицу (декремент) при поступлении команд этой подгруппы:
JECXZ, (JCXZ), LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ. Таким образом, регистр
ЕСХ используется в качестве счетчика циклов.
Команды LOOPE/LOOPZ, ШОРЫЕЛ-ООРЫганалогичны команде LOOP, но используют
Предыдущая << 1 .. 53 54 55 56 57 58 < 59 > 60 61 62 63 64 65 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed