КОП | Команда | Действие команды | Комментарии |
6A 50+rw(rd) FF /6 0E 1E 9С 8F /0 58+rw(rd 1F 0F A1 0F A9 9D 9E 9F | Включение операндов в стек PUSH imm8 PUSH imm16(32) PUSH r16(32) PUSH r/m16(32) PUSH CS PUSH SS PUSH DS Включение в стек всех РОН и Flags PUSHA PUSHAD PUSHF (PUSHFD) Извлечение операндов из стека POP m16(32) POP r16(32) POP SS POP DS POP ES POP FS POP GS Извлечение из стека РОН и Flags POPA POPAD POPF (POPFD) Загрузка и сохранение Флагов SAHF LAHF | imm8®[SP(ESP)] imm16(32)®[SP(ESP)] r16(32)®[SP(ESP)] r/m16(32)®[SP(ESP)] CS®[SP(ESP)] SS®[SP(ESP)] DS®[SP(ESP)] AX,CX,DX,BX,SP,BP, SI,DI® СТЕК EAX,EСX,EDX,EBX, ESP,EBP,ESI,EDI® СТЕК Flags (Eflags)® СТЕК SS:[SP(ESP)]®m16(32 SS:[SP(ESP)]®r16(32) SS:[SP(ESP)]®SS SS:[SP(ESP)]®DS SS:[SP(ESP)]®ES SS:[SP(ESP)]®FS SS:[SR(ESP)]®GS SS:[SP(ESP)→DI,SI, BP,BX,DX,CX,AX SS:[SP(ESP)]®EDI, ESI,EAX,EBP,EBX, EDX,ECX SS:[SP(ESP)]®Flags (EFlag) AH®Flags{SF,ZF,x,AFx,PF,x,CF} Flags{SF,ZF,x,AF,x,PF,x,CF}®AH | Флаги не модифицируются Флаги не модифицируются Флаги не модифицируются Флаги модифициру- ются Флаги модифициру- ются Флаги не модифицируются |
V. КОМАНДЫУПРАВЛЕНИЯ ПРОГРАММОЙ
КОП | Команда | Действие команды | Комментарии |
Безусловная передача управления | |||
EB cb | JMP rel8 | IP(EIP)+rel8®IP(EIP) | Флаги модифи-цируются только при переключении задачи; начальным значением IP является адрес команды, следующей непосредствен-но за командой JMP |
E9 cw(cd) | JMP rel16(32) | IP(EIP)+rel16(32)® ®IP(EIP) | |
FF /4 | JMP r/m16(32) | r/m16(32) ® IP(EIP) | |
EA cd(cp) | JMP PTR16:16(32) | PTR16:16(32)®CS:IP (EIP) | |
FF /5 | JMP m16:16(32) | m16:16(32)®CS:IP (EIP) | |
Условные короткие передачи управления | |||
7 cond cb | JCOND rel8 | Переход, если COND выполнено. Точка перехода: IP(EIP)+rel8®IP(EIP) | Флаги не моди- фицируются; Начальное значениеIP(EIP) –адрес команды следующей за командой LOOP или JCOND |
E3 cb | JCXZ(JECXZ) rel8 | Переход, если CX(ECX)=0 Точка перехода: IP(EIP)+rel8®IP(EIP) | |
Условные близкие передачи управления | |||
0Fcond cw (cd) | JCOND rel16(32) | Переход, если COND выполнено. Точка перехода: IP(EIP)+rel16(32)®IP (EIP) | |
Управление циклом | |||
E2 cb | LOOP rel8 | IP(EIP)+rel8®IP(EIP); CX(ECX) - 1, пока CX(ECX) ¹ 0. | |
E1 cb | LOOPE(LOOPZ) rel8 | IP(EIP)+rel8®IP(EIP); CX(ECX) - 1, пока CX(ECX) ¹ 0 и ZF=1. | |
E0 cb | LOOPNE(LOOPNZ) rel8 | IP(EIP)+rel8 ®IP(EIP); CX(ECX) - 1, пока CX(ECX) ¹ 0 и ZF=0. | |
Вызов процедур | |||
E8 | CALL rel16(32) | IP(EIP) ® стек, затем: IP(EIP)+rel16(32) ® ®IP(EIP) | Флаги модифицируют- ся только при переключении задач; начальное значение IP(EIP)-адрес команды, следующей непосредствен- но за командой CALL. При 16-битовых опе- рандах и 32 битовой адресации старшие 16 бит EIP обнуляются |
FF /2 | CALL r/m16(32) | IP(EIP) ® стек, затем: r/m16(32) ® IP(EIP) | |
9A cd(cp) | CALL PTR 16:16(32) | IP(EIP) ® стек, затем: PTR 16:16(32) ® →CS:IP(EIP) | |
FF /3 | CALL m16:16(32) | IP(EIP) ® стек, затем: m16:16(32)®CS:IP (EIP) | |
Возврат из процедур | |||
C3 | RET | Стек ® IP(EIP) | |
CB | RET | Стек ® CS:IP(EIP) | |
C2 iw | RET imm16 | Стек ® IP(EIP), затем: SP(ESP) ® SP(ESP)+ +imm16 | |
CA iw | RET imm16 | Стек ® CS:IP(EIP), затем SP(ESP) ® SP(ESP)+ +imm16 | |
Создание и освобождение стекового кадра | |||
C8 | ENTER imm16,imm8 | При imm8=0: BP(EBP) ® стек; SP - imm16 ® BP(EBP). | Создание стекового кадра параметров процедур объемом imm16 байт и глубиной imm8 байт |
C9 | LEAVE | BP(EBP) ® SP(ESP); Стек ® BP(EBP). | Удаление стекового кадра процедуры |
Вызов процедур прерывания | |||
CC | INT3 | Flags(EFlags), CS,IP(EIP)® стек; затем 0 ® IF, 0 ® TF. При R- и V- режимах: PTR 16:16 из таблицы векторов по адресу 0Ch®CS:IP; при P-режиме: PTR 16:16(32) из дескриптора IDT с адресом 18h® ® CS:IP(EIP) | |
CE | INT0 | Flags(EFlags),CS,IP (EIP)® стек; 0 ® IF, 0 ® TF; При R- и V- режимах: PTR 16:16 из таблицы векторов по адресу 10h ® CS:IP; При P-режиме: PTR 16:16(32) из дескриптора IDT по адресу 20h® ® CS:IP(EIP) | Только при OF=1 |
CD ib | INT N | Flag(EFlag),CS,IP(EIP) ® стек, 0 ®IF, 0 ®TF; При R- и V- режимах: PTR 16:16 из таблицы векторов по адресу 4´N ®CS:IP; При P-режиме: PTR 16:16 из дескриптора с адресом 8´N® ®CS:IP(EIP) | |
Возврат из прерывания | |||
CF | IRET | Стек ®IP,CS, Flags | В P-режиме, при NT=0 будет перекл. задачи. |
CF | IRETW | Стек ®IP(EIP), CS, Flags(EFlags) | |
CF | IRETD |
VI. КОМАНДЫУПРАВЛЕНИЯ ПРОЦЕССОРОМ
КОП | Команда | Действие команды | Комментарии |
NOP | IP(EIP) = IP(EIP) + 1 | ||
F4 | HLT | Останов процессора | Выход только по RESET или при запросе на прерывание |
9B | WAIT | Режим ожидания особого случая | |
0F AA | RSM | Выход из режима SMM | |
F0 | LOCK | Генерирует внешний сигнал блокировки LOCK# |
VII. КОМАНДЫ, ИСПОЛЬЗУЕМЫЕ В СИСТЕМНОМ