Набор инструкций процессора 8086


Для программиста ключевым ресурсом процессора 8086 является набор инструкций. Как мы уже обсуждали ранее, набор инструкций включает в себя все действия, которые программист может заставить выполнить процессор 8086. Полный набор инструкций Турбо Ассемблера приведен в Таблице 4.1.

Как можно заметить, в наборе инструкций процессора 8086 имеется множество инструкций. Эти инструкции выполняют множество действий, от пустой операции, которая не выполняет никаких функций (NOP), до копирования 65535 байт (REP MOVSB). Подробному освещению набора инструкций мы уделим много времени в других главах.

Набор инструкций Турбо Ассемблера

Таблица 4.1

Инструкция Процессор Инструкция Процессор

ADD все SAL все

OR все SHL все

ADC все SAR все

SBB все SHR все

AND все RCL все

SUB все RCR все

XOR все AAA все

CMP все AAS все

XCHG все CBW все

TEST все CWDE 386

MOV все (1) CLC все

ESC все CLD все

JMP все CLI все

CALL все CMC все

INT все CMPSB все

INC все CMPSW все

DEC все CMPSD 386

PUSH все CWD все

POP все CDQ 386

AAD все (2) DAA все

AAM все (2) DAS все

IN все HLT все

OUT все INTO все

LEA все IRET все

LDS все IRETD 386

LES все LAHF все

LSS 386 LODSB все

LFS 386 LODSW все

LGS 386 LODSD 386

DIV все MOVSB все

MUL все MOVSW все

IDIV все MOVSD 386

IMUL все (3) NOP все

NEG все POPF все

NOT все POPFD 386

ROL все PUSHF все

ROR все PUSHFD 386

SAHF все REPE все

SCASB все REPZ все

SCASW все REPNE все

SCASD 386 REPNZ все

STC все SEGCS все (4)

STD все SEGSD все (5)

STI все SEGSS все (6)

STOSB все SEGES все (7)

STOSW все SEGFS 386 (8)

STOSD 386 SEGGS 386 (9)

WAIT все RET все

XLATB все RETN все (10)

STOS все RETF все (11)

SCAS все JA все (12)

LODS все JNBE все (12)

XLAT все JAE все (12)

MOVS все JNB все (12)

CMPS все JNK все (12)

PUSHA 186386 JB все (12)

PUSHAD 386 JNAE все (12)

POPA 186386 JC все (12)

POPAD 386 JBE все (12)

LEAVE 186386 JNA все (12)

INSB 186386 JE все (12)

INSD 386 JG все (12)

OUTSB 186386 JNLE все (12)

OUTSW 186386 JGE все (12)

OUTSD 386 JNL все (12)

INS 186386 JL все (12)

OUTS 186386 JNGE все (12)

BOUND 186386 JLE все (12)

ENTER 186386 JNG все (12)

LOCK все JNE все (12)

REP все JNZ все (12)

JNO все (12) SETA 386

JNS все (12) SETAE 386

JNP все (12) SETB 386

JPO все (12) SETBE 386

JO все (12) SETC 386

JP все (12) SETE 386

JPE все (12) SETG 386

JS все (12) SETGE 386

LOOP все (13) SETL 386

LOOPE все (14) SETLE 386

LOOPZ все (14) SETNA 386

LOOPNE все (14) SETNAE 386

LOOPNZ все (14) SETNB 386

LOOPW все (15) SETNB 386

LOOPWE все (16) SETNC 386

LOOPWZ все (16) SETNE 386

LOOPWNE все (16) SETNG 386

LOOPWNZ все (16) SETNGE 386

LOOPD 386 (17) SETNL 386

LOOPDE 386 (17) SETNLE 386

LOOPDZ 386 (17) SETNO 386

LOOPDNE 386 (17) SETNP 386

LOOPDNZ 386 (17) SETNS 386

JCXZ все (18) SETNZ 386

JECXZ 386 (19) SETO 386

BT 386 SETP 386

BTC 386 SETPE 386

BTR 386 SETS 386

BTS 386 SETZ 386

BSF 386

BSR 386 APPL 286p+386p

MOVSX 386 CLTS 286p+386p

MOVZX 386 LLDT 286p+386p

SHLD 386 LMSW 286p+386p

SHRD 386 LTR 286p+386p

SLDT 286p+386p FXAM 8087387

SMSW 286p+386p FXTRACT 8087387

STR 286p+386p FXAM 8087387

VERR 286p+386p FXTRACT 8087387

VERW 286p+386p FYL2X 8087387

LGDT 286p+386p FYL2XP1 8087387

LIDT 286p+386p FNCLEX 8087387

SGDT 286p+386p FNDISI 8087387

SIDT 286p+386p FNENI 8087387

LAR 286p+386p FNINIT 8087387

LSL 286p+386p FADDP 8087387

FMULP 8087387 FDIVP 8087387

FADD 8087387 FDIVRP 8087387

FDIV 8087387 FSUBP 8087387

FDIVR 8087387 FSUBRP 8087387

FMUL 8087387 FXCH 8087387

FSUB 8087387 FCOMPP 8087387

FCOM 8087387 FFREE 8087387

FCOM 8087387 FIADD 8087387

FCOMP 8087387 FICOM 8087387

FST 8087387 FICOMP 8087387

F2XM1 8087387 FIDIV 8087387

FABS 8087387 FIDIVR 8087387

FCHS 8087387 FIMUL 8087387

FCLEX 8087387 FIST 8087387

FDECSTP 8087387 FISUB 8087387

FDISI 8087387 FISUBR 8087387

FENI 8087387 FLDCW 8087387

FINCSTP 8087387 FSTCW 8087387

FINIT 8087387 FSTSW 8087387

FLD1 8087387 FNSTCW 8087387

FLDL2E 8087387 FNSTSW 8087387

FLDL2T 8087387 FLDENV 8087387

FLDLG2 8087387 FRSTOR 8087387

FLDLN2 8087387 FSAVE 8087387

FLDPI 8087387 FSTENV 8087387

FLDZ 8087387 FNSAVE 8087387

FNOP 8087387 FNSTENV 8087387

FPATAN 8087387 FLD 8087387

FPREM 8087387 FSTP 8087387

FPTAN 8087387 FILD 8087387

FRNDINT 8087387 FISTP 8087387

FSCALE 8087387 FBLD 8087387

FSQRT 8087387 FBSTP 8087387

FIST 8087387 FWAIT 8087387

(1) реализована на процессоре 386 с использованием специальных

регистров;

(2) за инструкцией может следовать любое 8битовое непосредст

венное значение х (по умолчанию 10);

(3) расширения процессора 286;

(4) генерирует переопределение CS, может следовать за инструк

цией;

(5) генерирует переопределение DS, может следовать за инструк

цией;

(6) генерирует переопределение SS, может следовать за инструк

цией;

(7) генерирует переопределение ES, может следовать за инструк

цией;

(8) генерирует переопределение FS, может следовать за инструк

цией;

(9) генерирует переопределение GS, может следовать за инструк

цией;

(10) явный возврат управления ближнего типа;

(11) явный возврат управления дальнего типа;

(12) при переходах воспринимает аргумент ближнего или дальнего

типа;

(13) размер операнда в операторе цикла определяется размером

сегмента;

(14) аналогично LOOP;

(15) размер операнда в цикле всегда равен слову (CX);

(16) аналогично LOOPW;

(17) размер операнда в цикле всегда равен двойному слову (ECX);

(18) размер операнда в JCXZ равен слову (CX);

(19) размер операнда в JECXZ равен двойному слову (ECX).

Загрузка...