- •Основные непривилегированные команды процессоров Intel 80х86
- •Команды пересылки и загрузки
- •Целочисленная арифметика
- •Логические команды
- •Команды побитовой обработки
- •Команды передачи управления
- •Команды обработки строк
- •Команды двоично-десятичной арифметики
- •Команды работы с флагами, команды управления процессором
Команды передачи управления
|
Команда |
Комбинации операндов P1,P2,P3 |
Действие |
Какие флаги меняет |
Какие процессоры |
Расшифровка мнемоники команды |
|
JMP метка
|
|
Безусловный переход на метку |
– |
все |
Jump |
|
JMP P1 |
r16/32 m16/32/48 |
Безусловный переход по адресу, хранящ-ся в Р1 |
– |
все | |
|
JE метка JZ метка |
|
Условный переход, если ZF=1 |
– |
все |
Jump if Equal Jump if Zero |
|
JNE метка JNZ метка |
|
Условный переход, если ZF=0 |
– |
все |
Jump if Not Equal Jump if Not Zero |
|
JS метка |
|
Условный переход, если SF=1 |
– |
все |
Jump if Sign |
|
JNS метка |
|
Условный переход, если SF=0 |
– |
все |
Jump if No Sign |
|
JP метка |
|
Условный переход, если PF=1 |
– |
все |
Jump if Parity |
|
JNP метка |
|
Условный переход, если PF=0 |
– |
все |
Jump if Not Parity |
|
JO метка |
|
Условный переход, если OF=1 |
– |
все |
Jump if Overflow |
|
JNO метка |
|
Условный переход, если OF=0 |
– |
все |
Jump if Not Overflow |
|
JA метка JNBE метка |
|
Условный переход, если > (беззнак.) по CF=0 и ZF=0 |
– |
все |
Jump if Above Jump if Not Below or Equal |
|
JAE метка JNB метка JNC метка |
|
Условный переход, если >= (беззнак.) Условный переход, если CF=0 |
– |
все |
Jump if Above or Equal Jump if Not Below Jump if Not Carry |
|
JB метка JNAE метка JC метка |
|
Условный переход, если < (беззнак.) Условный переход, если CF=1 |
– |
все |
Jump if Below Jump if Not Above or Equal Jump if Carry |
|
JBE метка JNA метка |
|
Условный переход, если (беззнак.):CF=1 или ZF=1 |
– |
все |
Jump if Below or Equal Jump if Not Above |
|
JG метка JNLE метка |
|
Условный переход, если > (со знаком):ZF=0 и SF=OF |
– |
все |
Jump if Greater Jump if Not Less or Equal |
|
JGE метка JNL метка |
|
Условный переход, если (со знаком) по SF=OF |
– |
все |
Jump if Greater or Equal Jump if Not Less |
|
JL метка JNGE метка |
|
Условный переход, если < (со знаком) по SFOF |
– |
все |
Jump if Less Jump if Not Greater or Equal |
|
JLE метка JNG метка |
|
Условный переход, если (со знаком)ZF=1или SFOF |
– |
все |
Jump if Less or Equal Jump if Not Greater |
|
JCXZ метка |
|
Условный переход, если CX=0 |
– |
все |
Jump if CX is Zero |
|
JECXZ метка |
|
Условный переход, если ECX=0 |
– |
386 > |
Jump if ECX is Zero |
|
LOOP метка |
|
Цикл на метку (по EСХ): if {ECX– –}>0: goto метка |
– |
все |
Loop (англ. "петля") |
|
LOOPZ метка LOOPE метка |
|
Цикл на метку (по EСХ) пока ZF=1: if ({ECX– –}>0 && ZF=1): goto метка |
– |
все |
Loop if Zero Loop if Equal |
|
LOOPNZ метка LOOPNE метка |
|
Цикл на метку (по EСХ) пока ZF=0: if ({ECX– –}>0 && ZF=0): goto метка |
– |
все |
Loop if Not Zero Loop if Not Equal |
|
CALL метка |
|
Вызов процедуры по адресу метка |
– |
все |
Call (англ. "вызов") |
|
CALL P1 |
r16/32 m16/32/48 |
Вызов процедуры по адресу, хранящ. в Р1 |
– |
все | |
|
RETN, RET |
|
Ближний возврат из процедуры |
– |
все |
Return Near |
|
RETN const, RET const
|
|
Ближний возврат из процедуры c очисткой const байт из стека |
– |
все | |
|
RETF, RET |
|
Дальний возврат из процедуры |
– |
все |
Return Far |
|
RETF const, RET const |
|
Дальний возврат из процедуры c очисткой const байт из стека |
– |
все | |
|
INT const |
|
Вызов прерывания с номером const |
– |
все |
Interrupt |
|
IRET |
|
Возврат из прерывания в 16-битном режиме |
весь регистр FLAGS |
все |
Interrupt Return |
|
IRETD |
|
Возврат из прерывания в 32-битном режиме |
весь регистр EFLAGS |
386 > |
Interrupt Return with Double word Regs |
|
INT3 |
|
Вызов отладочного прерывания INT 3 |
– |
все |
INT 3 |
|
INTO |
|
Вызов прерывания INT4 если флаг OF=1 |
– |
все |
INT if Overflow |
|
BOUND P1,P2 |
r16, m32 r32, m64 |
Вызов прерывания INT5 если не выполняется: m32[15:0] r16 m32[31:16] m64[31:0] r32 m64[63:32] |
– |
286 > |
Check Array Bounds |
