Instrukční sada na x86 prošla mnoha změnami v průběhu času. Většina z nich je pouze doplněním původní instrukční sady, která poskytuje novou funkčnost.
Toto je kompletní sada instrukcí pro procesory 8086 - 8088 a většina, ne-li všechny tyto pokyny, jsou přístupné v 32bitovém režimu. Poté pracují na 32bitových registrech a hodnotách (eax, ebx atd.) Namísto svých 16bitových protějšků (ax, bx atd.).
Příjmení | Význam | Překlad | Poznámky | |
---|---|---|---|---|
AAA | SCII djust AL po A oplnění | Upravte registr AL po přidání (režim ASCII) | Používá se s nekomprimovaným kódováním BCD | |
AAD | SCII djust AX po D ivision | Upravte registr AX po rozdělení (režim ASCII) | Používá se s nekomprimovaným kódováním BCD, buggy v původní sadě instrukcí, ale ‚opraveno 'v NEC V20, což způsobuje mnoho nekompatibilit | |
AAM | SCII djust AX po M ultiplication | Upravte registr AX po násobení (režim ASCII) | Používá se s nekomprimovaným kódováním BCD | |
AAS | SCII djust AL po S ubtraction | Upravit AL registr po odečtení (režim ASCII) | Používá se s nekomprimovaným kódováním BCD | |
ADC | Ad d s C arry | Přidejte dvě celá čísla plus příznak carry | Výsledek nahradí první operand | |
PŘIDAT | Přidat | Přidejte dvě celá čísla | Výsledek nahradí první operand | |
A | Logické AND | Provede logické AND operandů | Výsledek nahradí první operand | |
VOLÁNÍ | Postup volání | Vyvolá postup | ||
CBW | C onvert B yte k W ord | Převést bajt na slovo | Registr AL je rozšířen na AX | |
CLC | Cl ucho C arry vlajka | Nastavte příznak přenášení na nulu | ||
CLD | Cl ucho D irection Flag | Nastavte ukazatel směru na nulu | ||
CLI | Cl ucho Nerušil jsem Vlajku | Nastaví příznak přerušení na nulu | ||
CMC | C o m plement C arry Vlajka | Obrátí nosnou vlajku | ||
CMP | C o mp are | Porovnat dvě celá čísla (aritmeticky) | Umístěte příznaky podle rozdílu mezi operandy | |
CMPSzz | C o mp jsou S trings | Porovná bajt / slovo dvou řetězců | Symboly: CMPS, CMPSB, CMPSW | |
CWD | C onvert W ord na D oubleword | Převede slovo na dvojité slovo | Registr AX je rozšířen na DX: AX | |
DAA | D ecimal djust po-G oplnění | Upravit AL registr po přidání (desítkový režim) | Používá se s komprimovaným kódováním BCD | |
DAS | D ecimal A djust AL po S ubtraction | Upravit AL registr po odečtení (desítkový režim) | Používá se s komprimovaným kódováním BCD | |
DEC | Prosince rement o 1 | Snížit celé číslo | Odeberte jeden z operandu | |
DIV | Unsigned Div ide | Děleno celým číslem bez znaménka | Dividenda je registr AX / DX: AX, kvocient je zapsán v AL / AX a zbytek v AH / DX | |
ESC | Esc opice | Používá se s jednotkou výpočtu s plovoucí desetinnou čárkou | ||
HLT | H a lt | Vstupte do stavu vypnutí, dokud nebude přijato přerušení | Umožňuje snížit spotřebu energie procesoru. Alias: HALT | |
IVDD | S i gned Div ide | Děleno celočíselným znaménkem | Dividenda je registr AX / DX: AX, kvocient je zapsán v AL / AX a zbytek v AH / DX | |
IMUL | S i gned Mul tiply | Vynásobte celé číslo se znaménkem | Faktorem je registr AL / AX a produkt je zapsán do AX / DX: AX | |
V | V put z přístavu | Čte z přístavu | Cíl je registr AL / AX | |
INC | Inc rement o 1 | Zvyšuje celé číslo | Přidejte jeden k operandu | |
INT | Výzva k Int errupt řádu | Volá přerušení identifikované operandem | ||
DO | Volání int erruptního postupu, pokud O verflow | Volá přerušení přetečení, pokud je nastaven příznak přetečení | ||
IRET | I nterrupt Ret urna | Vrací se z přerušení | ||
Jcc | J ump, pokud je podmínka splněna | Pokud je podmínka pravdivá, skočte | Symboly: JA, JAE, JB, JBE, JC, JCXZ, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ | |
JMP | J u mp | Skok (bezpodmínečný) | ||
LAHF | L OAD F zaostává do AH | Zkopírujte registr příznaků do registru AH | ||
LDS | L OAD DS s daleko Pointer | Načtěte ukazatel typu daleko (daleko) do registru DS (segment) a operandu (offset) | ||
LEA | L OAD E ffective ddress | Načte adresu druhého operandu do prvního | ||
THE | L OAD ES s daleko Pointer | Načíst ukazatel typu daleko (daleko) v registru ES (segment) a operand (offset) | ||
ZÁMEK | Assert LOCK # Předpona signálu | Předpona uzamykací sběrnice pro budoucí pokyny | Používá se pro víceprocesorové platformy. | |
LODSzz | Lo d S Tring | Zkopírujte bajt / slovo z řetězce | Cíl je registr AL / AX. Symboly: LODS, LODSB, LODSW | |
LOOPcc | Smyčka podle počítadla | Snižuje počitadlo a přeskočí, pokud je splněna podmínka | Počítadlo je registr CX. Symboly: LOOP, LOOPE, LOOPNE, LOOPNZ, LOOPZ | |
MOV | Mov e | Zkopírujte druhý operand na první | ||
MOVSzz | Přesuňte se z S tring na String | Zkopírujte bajt / slovo z jednoho řetězce do druhého | Symboly: MOVS, MOVSB, MOVSW | |
MUL | Nepodepsaný Mul tiply | Vynásobte celé číslo bez znaménka | Faktorem je registr AL / AX a produkt je zapsán do AX / DX: AX | |
NEG | Dvojkový doplněk Neg ace | Vypočítá opak operandu (negace komplementu dvou ) | Výsledek nahradí operand | |
NOP | N o Op lupráci | Nedělat nic | ||
NE | Negace komplementu člověka | Provede logické NENÍ (negace doplňkem ) | Výsledek nahradí operand | |
ZLATO | Logická inkluzivní NEBO | Provede inkluzivní logické NEBO operandů | Výsledek nahradí první operand | |
VEN | Vydáno do přístavu | Zapisuje do portu | Zdrojem je registr AX / AL | |
POP | Pop hodnota ze zásobníku | Přejděte do registru operandů | ||
POPF | Pop F lags Zaregistrujte se ze zásobníku | Otevře se registr příznaků | ||
TAM | Zatlačte hodnotu do zásobníku | Skládá registr operandu | ||
PUSHF | Push F lags Register to Stack | Skládejte registr příznaků | ||
RCL | R Otate přes C arry L EFT | Otočte se doleva pomocí nosné vlajky | ||
CPR | R Otočit přes C Arry R roj | Otočte se doprava pomocí nosné vlajky | ||
REPcc | Repeat String Operation Prefix | Předpona pro opakování operace na řetězu | Symboly: REP, REPE, REPNE, REPNZ, REPZ | |
RET | Ret urna z postupu | Vrací se z procedury volané pouze se zpožděním | Zpáteční (offsetová) adresa je v zásobníku. Volitelný operand může označovat počet dalších bajtů k naplnění. | |
RETF | Ret urna from F ar Procedure | Vrátí proceduru nazvanou segment a offset | Zpáteční adresa (segment a offset) je na zásobníku. Volitelný operand může označovat počet dalších bajtů k naplnění. | |
ROL | Ro tate L eft | Otočit doleva | ||
MMR | Ro tate R ight | Otočit doprava | ||
SAHF | S roztrhal AH na F lag | Zkopírujte registr AH do registru příznaků | ||
SAL | S hift A rithmectically EFT | Aritmetický posun doleva | Stejná instrukce jako SHL | |
SALC | S a AL z vlajky C arry | Zkopírujte hodnotu 0xFF do AL registru, pokud je CF 1, nebo 0x00 jinak | Zpočátku nezdokumentováno. Alias: SETALC | |
SAR | S hift rithmectically R roj | Aritmetický posun doprava | Nesmí být zaměňována s SHR | |
SBB | Celé číslo S u b trakce B orrow | Odečtěte dvě celá čísla, přidejte příznak přenosu | Výsledek nahradí první operand | |
SCASzz | Sca n S tring | Porovnejte bajt / slovo řetězce | Odkaz je registr AL / AX. Mnemotechnika: SCAS, SCASB, SCASW | |
SHL | Sh ift The EFT | Logický posun doleva | Stejná instrukce jako SAL | |
SHR | Sh ift R roj | Logický posun doprava | Nesmí být zaměňována s SAR | |
STC | S e t C Arry Flag | Nastavte vlajku na přenášení na jednu | ||
STD | S e t D irectorate Flag | Nastavte směrovou vlajku na jednu | ||
STI | S e t I nterrupt Flag | Nastaví příznak přerušení na jeden | ||
STOSzz | Sto v S tringu | Zkopírujte do bajtu / slova řetězce | Zdrojem je registr AL / AX. Symboly: STOS, STOSB, STOSW | |
SUB | Dílčí trakt | Odečtěte dvě celá čísla | Výsledek nahradí první operand | |
TEST | Logické srovnání | Porovnat dva operandy (logicky) | Nastaví příznaky podle výsledku logického AND mezi operandy | |
POČKEJTE | Počkejte | Počkejte, dokud nebude aktivní pin BUSY procesoru | Používá se s jednotkou výpočtu s plovoucí desetinnou čárkou | |
XCHG | E xch a g e | Zamění obsah dvou operandů | ||
XLAT | Vyhledávací tabulka překladu | Překlad dat mezi tabulkami | Alias: XLATB | |
XOR | Logická klastr E x NEBO | Provede exkluzivní logické NEBO operandů | Výsledek nahradí první operand |
VÁZANO, VSTUP, INSB, INSW, ODCHOD, OUTSB, OUTSW, POPA, PUSHA, PUSHW
Přírůstky do procesoru 80286ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LOADALL, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR, VERW
Přírůstky do procesoru 80386BSF, BSR, BT, BTC, BTR, BTS, CDQ, CMPSD, CWDE, INSD, IRETD, IRETDF, IRETF, JECXZ, LFS, LGS, LSS, LODSD, LOOPD, LOOPED, LOOPNED, LOOPNZD, LOOPZD, MOVSD, MOVSD, MOVSD MOVZX, OUTSD, POPAD, POPFD, PUSHAD, PUSHD, PUSHFD, SCASD, SETA, SETAE, SETB, SETBE, SETC, SETE, SETG, SETGE, SETL, SETLE, SETNA, SETNAE, SETNB, SETNBE, SETNC, SETNE, SETNG , NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ, NASTAVENÍ
Přírůstky do procesoru 80486BSWAP, CMPXCHG, CPUID , INVD, INVLPG, RSM, WBINVD, XADD
Dodatky k procesoru PentiumCMPXCHG8B, čtení MSR registrů, RDPMC * RDTSC , WRMSR
CMOVA, CMOVAE, CMOVB, CMOVB, CMOVE, CMOVG, CMOVGE, CMOVL, CMOVLE, CMOVNA, CMOVNAE, CMOVNB, CMOVNBE, CMOVNC, CMOVNE, CMOVNG, CMOVNGE, CMOVNL, CMOVNLE, CMOVNO, CMOVPVONP, CMOVPVONP, CMOVPVONP , CMOVPO, CMOVS, CMOVZ, SYSENTER, SYSEXIT, UD2
Přidání procesoru AMD K7Vlastnosti HSE
MASKMOVQ, MOVNTPS, MOVNTQ, PREFETCH0, PREFETCH1, PREFETCH2, PREFETCHNTA, SFENCE ( řazení paměti )
Přírůstky procesoru Pentium 4Funkce SSE2
CLFLUSH, LFENCE, MASKMOVDQU, MFENCE, MOVNTDQ, MOVNTI, MOVNTPD, PAUSE ( pro mezipaměť )
Přírůstky procesoru Pentium 4 podporující funkce SSE3Procesor podporující Hyper-Threading
Funkce SSE3
MONITOR, MWAIT (pro synchronizaci vláken )
Přírůstky procesoru Pentium 4 6x2VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON (pokyny VMX )
Dodatky k procesorům x86-64CMPXCHG16B
F2XM1, FABS, FADD, FADDP, FBLD, FBSTP, FCHS, FCLEX, FCOM, FCOMP, FCOMPP, FDECSTP, FDISI, FDIV, FDIVP, FDIVR, FDIVRP, FENI, FREE, FIADD, FICOM, FICOMP, FICOMP, FICOMP FINCSTP, FINIT, FIST, FISTP, FISUB, FISUBR, FLD, FLD1, FLDCW, FLDENV, FLDENVW, FLDL2E, FLDL2T, FLDLG2, FLDLN2, FLDPI, FLDZ, FMUL, FMULP, FNINCLEXIT, FNENWI FNDWN FNDW FNDW FND , FNSTENVW, FNSTSW, FPATAN, FPREM, FPTAN, FRNDINT, FRSTOR, FRSTORW, FSAVE, FSAVEW, FSCALE, FSQRT, FST, FSTCW, FSTENV, FSTUBRST, FSPUBP, FSTUBRST, FSPSTP, FSTUBRST, FSPSTP, FSTUBRST, FSPSTP, FSTUBRST , FXCH, FXTRACT, FYL2X, FYL2XP1
FSETPM
Přírůstky procesoru 80387FCOS, FLDENVD, FNSAVED, FNSTENVD, FPREM1, FRSTORD, FSAVED, FSIN, FSINCOS, FSTENVD, FUCOM, FUCOMP, FUCOMPP
Přírůstky do procesoru Pentium ProFCMOVB, FCMOVBE, FCMOVE, FCMOVNB, FCMOVNBE, FCMOVNE, FCMOVNU, FCMOVU, FCOMI, FCOMIP, FUCOMI, FUCOMIP, FXRSTOR, FXSAVE
Přírůstky procesoru Pentium 4 podporující SSE3Funkce SSE3
FISTTP (převod z x87 na celé číslo)
Přírůstky procesoru Pentium MMX
EMMS, MOVD, MOVQ, PABSB, PABSW, PABSD, PACKSSDW, PACKSSWB, PACKUSWB, PADDB, PADDD, PADDSB, PADDSW, PADDUSB, PADDUSW, PADDW, PAND, PANDN, PCMPTWDG, PCMPGMPWMP, PCMPGMPMDPP PCMPGMPEMPDMP PMULHW, PMULLW, POR, PSLLD, PSLLQ, PSLLW, PSRAD, PSRAW, PSRLD, PSRLQ, PSRLW, PSUBB, PSUBD, PSUBQ, PSUBSB, PSUBSW, PSUBUSB, PSUBUSW, PSUBW, PUNPCKHCKPPKPPKPPKK , PUNPCKHBK, PUNPCKUNPCHWD, PUNPCKHBK, PUNPCKUNPCHWD, PUNPCKHBK, PUNPCKUNPCHWD, PUNPCKHBK, PUNPCKUNPCHWD, PUNPCKHBK, PUNPCKUNK
Přírůstky do procesoru 6x86MX od Cyrix ; Podporováno na jiných procesorech, tj. Extended MMX na Athlon 64
Přírůstky procesoru K6-2
FEMMS, PAVGUSB, PF2ID, PFACC, PFADD, PFCMPEQ, PFCMPGE, PFCMPGT, PFMAX, PFMIN, PFMUL, PFRCP, PFRCPIT1, PFRCPIT2, PFRSQIT1, PFRSQRT, PFSUB, PFSUBR, PIF
Doplněk k procesoru Athlon
PF2IW, PFNACC, PFPNACC, PI2FW, PSWAPD
Přírůstky procesoru Pentium III
Viz také pokyny k celým číslům přidaným k procesoru Pentium III
Pokyny SIMD SSE s plovoucí desetinnou čárkouADDPS, ADDSS, ANDNPS, ANDPS, CMPPS, CMPSS, COMISS, CVTPI2PS, CVTPS2PI, CVTSI2SS, CVTSS2SI, CVTTPS2PI, CVTTSS2SI, DIVPS, DIVSS, LDMXCSR, MAXPS, MAXSS, MINPS, MINSS, MOVAPS, MOVPS, MOVPS, MOVPS MOVHLPS, MOVAPS MOVMSKPS, MOVNTPS, MOVSS, MOVUPS, MULPS, MULSS, ORPS, RCPPS, RCPSS, RSQRTPS, RSQRTSS, SHUFPS, SQRTPS, SQRTSS, STMXCSR, SUBPS, SUBSS, UCOMISS, UNPCKHPS, UNPCCHPS
Pokyny SSE SIMD na celá číslaPAVGB, PAVGW, PEXTRW, PINSRW, PMAXSW, PMAXUB, PMINSW, PMINUB, PMOVMSKB, PSADBW, PSHUFW
Přírůstky procesoru Pentium 4
Viz také pokyny k celým číslům přidaným k procesoru Pentium 4
Pokyny SSE2 s plovoucí desetinnou čárkouADDPD, ADDSD, ANDNPD, ANDPD, CMPPD, CMPSD * COMISD, CVTDQ2PD, CVTDQ2PS, CVTPD2DQ, CVTPD2PI, CVTPD2PS, CVTPI2PD, CVTPS2DQ, CVTPS2PD, CVTSD2SI, CVTSD2, CVS, CVS, CVS, CVS, CVS MAXPD, MAXSD, MINPD, MINSD, MOVAPD, MOVHPD, MOVLPD, MOVMSKPD, MOVSD *, MOVUPD, MULPD, MULSD, ORPD, SHUFPD, SQRTPD, SQRTSD, SUBPD, SUBSD, UCOMISD, UNPCKHPD, XORPDKP
MOVDQ2Q, MOVDQA, MOVDQU, MOVQ2DQ, PADDQ, PMULUDQ, PSHUFHW, PSHUFLW, PSHUFD, PSLLDQ, PSRLDQ, PUNPCKHQDQ, PUNPCKLQDQ
Přírůstky procesoru Pentium 4 podporující SSE3
Viz také pokyny pro celé číslo a plovoucí desetinnou čárku přidané k procesorům Pentium 4 s podporou SSE3
Pokyny SSE3 s plovoucí desetinnou čárkouPřidání procesoru Core 2
Dodatky k architektuře Intel Penryn a Nehalem