X86 talimat listeleri - X86 instruction listings

x86 komut seti şu talimatlar dizisini ifade eder: x86 -uyumlu mikroişlemciler destek. Talimatlar genellikle bir çalıştırılabilir program, genellikle bir bilgisayar dosyası ve işlemci üzerinde yürütülür.

X86 komut seti birkaç kez genişletilerek daha geniş kayıtlar ve veri türlerinin yanı sıra yeni işlevsellik.[1]

x86 tamsayı talimatları

Bu, Intel'in tam 8086/8088 talimat setidir. Bu talimatların tümü 32 bit modunda mevcut değilse çoğu; sadece 32 bitlik kayıtlarda çalışırlar (eax, ebx, vb.) ve 16 bitleri (balta, bxvb.) meslektaşları. Ayrıca bakınız x86 derleme dili Bu işlemci ailesi için hızlı bir eğitim için. Güncellenen komut seti de mimariye göre gruplandırılmıştır (i386, i486, i686 ) ve daha genel olarak şu şekilde anılır x86 32 ve x86 64 (Ayrıca şöyle bilinir AMD64 ).

Orijinal 8086/8088 talimatları

Orijinal 8086/8088 talimat seti
TalimatAnlamNotlarİşlem kodu
AAAASCII, eklemeden sonra AL'yi ayarlarambalajsız olarak kullanıldı ikili kodlu ondalık0x37
AADASCII, bölmeden önce AX'i ayarlar8086/8088 veri sayfası belgeleri AAD talimatının yalnızca temel 10 sürümünü (opcode 0xD5 0x0A), ancak başka herhangi bir taban çalışacaktır. Daha sonra Intel'in belgeleri de genel forma sahip. NEC V20 ve V30 (ve muhtemelen diğer NEC V serisi CPU'lar) her zaman 10 tabanını kullanır ve argümanı yok sayarak bir dizi uyumsuzluğa neden olur0xD5
AAMASCII, çarpmadan sonra AX'i ayarlarYalnızca temel 10 sürümü (İşlenen 0xA'dır) belgelenmiştir, AAD için notlara bakın0xD4
AASASCII, çıkarma işleminden sonra AL'yi ayarlar0x3F
ADCCarry ile eklehedef = hedef + kaynak + Carry_flag0x10… 0x15, 0x80… 0x81 / 2, 0x82… 0x83 / 2 (80186'dan itibaren)
EKLEEkle(1) r / m + = r / immün; (2) r + = m / immün;0x00… 0x05, 0x80 / ​​0… 0x81 / 0, 0x82 / 0… 0x83 / 0 (80186'dan beri)
VEMantıksal AND(1) r / m & = r / imm; (2) r & = m / imm;0x20… 0x25, 0x80… 0x81 / 4, 0x82… 0x83 / 4 (80186'dan beri)
TELEFON ETMEKÇağrı prosedürüit eip; eip, aramadan hemen sonra talimatı işaret eder0x9A, 0xE8, 0xFF / 2, 0xFF / 3
CBWBaytı kelimeye dönüştür0x98
CLCAçık bayrak taşımakCF = 0;0xF8
CLDAçık yön bayrağıDF = 0;0xFC
CLIAçık kesinti bayrağıIF = 0;0xFA
CMCTamamlayıcı taşıma bayrağı0xF5
CMPİşlenenleri karşılaştır0x38… 0x3D, 0x80… 0x81 / 7, 0x82… 0x83 / 7 (80186'dan beri)
CMPSBBellekteki baytları karşılaştırın0xA6
CMPSWKelimeleri karşılaştır0xA7
CWDKelimeyi çift kelimeye çevir0x99
DAAEklemeden sonra AL'yi ondalık ayarla(paketlenmiş olarak kullanılır ikili kodlu ondalık )0x27
DASÇıkarmadan sonra AL'yi ondalık ayarla0x2F
ARALIK1 azalt0x48… 0x4F, 0xFE / 1, 0xFF / 1
DIVİmzasız bölme(1) AX = DX: AX / r / m; sonuç DX = kalan (2) AL = AX / r / m; sonuç AH = kalan0xF7 / 6, 0xF6 / 6
ESCİle kullanılan kayan nokta birimi0xD8..0xDF
HLTDurma durumunu girin0xF4
IDIVİmzalı bölme(1) AX = DX: AX / r / m; sonuç DX = kalan (2) AL = AX / r / m; sonuç AH = kalan0xF7 / 7, 0xF6 / 7
IMULİmzalı çarpma(1) DX: AX = AX * r / m; (2) AX = AL * r / m0x69, 0x6B (her ikisi de 80186'dan beri), 0xF7 / 5, 0xF6 / 5, 0x0FAF (80386'dan beri)
İÇİNDEBağlantı noktasından giriş(1) AL = bağlantı noktası [imm]; (2) AL = bağlantı noktası [DX]; (3) AX = bağlantı noktası [imm]; (4) AX = bağlantı noktası [DX];0xE4, 0xE5, 0xEC, 0xED
INC1 artır0x40… 0x47, 0xFE / 0, 0xFF / 0
INTSeslenmek kesmek0xCC, 0xCD
INTOTaşma durumunda kesmek için çağrı0xCE
IRETKesmeden dön0xCF
JccKoşulu atla(JA, JAE, JB, JBE, JC, 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)0x70… 0x7F, 0x0F80… 0x0F8F (80386'dan beri)
JCXZCX sıfırsa atla0xE3
JMPZıpla0xE9… 0xEB, 0xFF / 4, 0xFF / 5
LAHFBAYRAKLARI AH yazmacına yükle0x9F
LDSDS kullanarak işaretçi yükle0xC5
LEAEtkili Adresi Yükle0x8D
LESES'yi işaretçi ile yükle0xC4
KİLİTBUS LOCK # sinyalini doğrulayın(çoklu işlem için)0xF0
LODSBDize baytını yükleEğer (DF==0) AL = *++; Başka AL = *--;0xAC
LODSWDize kelimesini yükleEğer (DF==0) AX = *++; Başka AX = *--;0xAD
DÖNGÜ / DÖNGÜDöngü kontrolü(DÖNGÜ, DÖNGÜ, DÖNGÜ, DÖNGÜ) Eğer (x && --CX) git lbl;0xE0… 0xE2
MOVHareketverileri bir konumdan diğerine kopyalar, (1) r / m = r; (2) r = r / m;0xA0 ... 0xA3
MOVSBBaytı dizeden dizeye taşı
Eğer (DF==0)   *(bayt*)DI++ = *(bayt*)++; Başka   *(bayt*)DI-- = *(bayt*)--;
0xA4
MOVSWKelimeyi dizeden dizeye taşı
Eğer (DF==0)   *(kelime*)DI++ = *(kelime*)++; Başka   *(kelime*)DI-- = *(kelime*)--;
0xA5
MULİmzasız çarpma(1) DX: AX = AX * r / m; (2) AX = AL * r / m;0xF7 / 4, 0xF6 / 4
NEGİkinin tümleyici olumsuzlamasır/m *= -1;0xF6 / 3… 0xF7 / 3
HAYIRİşlem yokopcode eşdeğeri XCHG EAX, EAX0x90
DEĞİLİşleneni olumsuzlayın, mantıksal DEĞİLr/m ^= -1;0xF6 / 2… 0xF7 / 2
VEYAMantıksal VEYA(1) r/m |= r/imm; (2) r |= m/imm;0x08… 0x0D, 0x80… 0x81 / 1, 0x82… 0x83 / 1 (80186'dan beri)
DIŞARIBağlantı noktasına çıktı(1) bağlantı noktası [imm] = AL; (2) bağlantı noktası [DX] = AL; (3) bağlantı noktası [imm] = AX; (4) bağlantı noktası [DX] = AX;0xE6, 0xE7, 0xEE, 0xEF
POPPop verisi yığınr / m = * SP ++; POP CS (opcode 0x0F) yalnızca 8086 / 8088'de çalışır. Daha sonraki CPU'lar, daha yeni talimatlar için bir önek olarak 0x0F kullanır.0x07, 0x0F (yalnızca 8086/8088), 0x17, 0x1F, 0x58… 0x5F, 0x8F / 0
POPFPop BAYRAKLAR kaydı yığındanBAYRAKLAR = * SP ++;0x9D
İTVerileri yığına aktarın*--SP = r/m;0x06, 0x0E, 0x16, 0x1E, 0x50… 0x57, 0x68, 0x6A (her ikisi de 80186'dan beri), 0xFF / 6
PUSHFBAYRAKLARI yığının üzerine itin*--SP = BAYRAKLAR;0x9C
RCLSola döndür (taşıma ile)0xC0… 0xC1 / 2 (80186'dan beri), 0xD0… 0xD3 / 2
RCRSağa döndür (taşıma ile)0xC0… 0xC1 / 3 (80186'dan beri), 0xD0… 0xD3 / 3
REPxxMOVS / STOS / CMPS / LODS / SCAS'ı tekrarlayın(REP, REPE, REPNE, REPNZ, REPZ)0xF2, 0xF3
RETProsedürden dönüşGerçek bir talimat değil. Derleyici, hedef sistemin bellek modeline bağlı olarak bunları bir RETN veya RETF'ye çevirecektir.
RETNYakın prosedürden dönüş0xC2, 0xC3
RETFUzak prosedürden dönüş0xCA, 0xCB
ROLSola dön0xC0… 0xC1 / 0 (80186'dan beri), 0xD0… 0xD3 / 0
RORSağa döndürün0xC0… 0xC1 / 1 (80186'dan beri), 0xD0… 0xD3 / 1
SAHFAH'yi BAYRAKLAR halinde saklayın0x9E
SALAritmetik Olarak Kaydırma sol (işaretli sola kaydırma)(1) r / m << = 1; (2) r / m << = CL;0xC0… 0xC1 / 4 (80186'dan beri), 0xD0… 0xD3 / 4
SARAritmetik olarak sağa kaydır (işaretli sağa kaydırma)(1) (imzalı) r / m >> = 1; (2) (imzalı) r / m >> = CL;0xC0… 0xC1 / 7 (80186'dan beri), 0xD0… 0xD3 / 7
SBBÖdünç alma ile çıkarmaalternatif 1 baytlık kodlama SBB AL, AL aracılığıyla edinilebilir belgelenmemiş SALC talimatı0x18… 0x1D, 0x80… 0x81 / 3, 0x82… 0x83 / 3 (80186'dan beri)
SCASBBayt dizesini karşılaştır0xAE
SCASWKelime dizesini karşılaştır0xAF
SHLVardiya sol (işaretsiz sola kaydırma)0xC0… 0xC1 / 4 (80186'dan beri), 0xD0… 0xD3 / 4
SHRSağa kaydır (işaretsiz sağa kaydırma)0xC0… 0xC1 / 5 (80186'dan itibaren), 0xD0… 0xD3 / 5
STCTaşıma bayrağını ayarlaCF = 1;0xF9
STDYön bayrağını ayarlaDF = 1;0xFD
STIKesinti bayrağı ayarlaEĞER = 1;0xFB
STOSBBaytı dizede saklayınEğer (DF==0) *ES:DI++ = AL; Başka *ES:DI-- = AL;0xAA
STOSWKelimeyi dizede saklaEğer (DF==0) *ES:DI++ = AX; Başka *ES:DI-- = AX;0xAB
ALTÇıkarma(1) r / m - = r / immün; (2) r - = m / immün;0x28… 0x2D, ​​0x80… 0x81 / 5, 0x82… 0x83 / 5 (80186'dan itibaren)
ÖLÇEKMantıksal karşılaştırma (VE)(1) r / m & r / imm; (2) r & m / imm;0x84, 0x84, 0xA8, 0xA9, 0xF6 / 0, 0xF7 / 0
BEKLEMeşgul olmayana kadar bekleBUSY # pini devre dışı kalana kadar bekler ( kayan nokta birimi )0x9B
XCHGVeri değişimir :=: r/m; Bir spinlock genellikle xchg'yi bir atomik operasyon. (koma böcek ).0x86, 0x87, 0x91… 0x97
XLATTablo arama çevirisigibi davranır MOV AL, [BX + AL]0xD7
ÖZELVEYAÖzel veya(1) r / m ^ = r / imm; (2) r ^ = m / immün;0x30… 0x35, 0x80… 0x81 / 6, 0x82… 0x83 / 6 (80186'dan itibaren)

Belirli işlemcilerde eklendi

İle eklendi 80186 /80188

TalimatAnlamNotlar
CİLTLİDizi dizinini sınırlara göre kontrol edintest başarısız olursa yazılım kesintisi 5'i yükseltir
GİRİŞYığın çerçevesini girinYüksek seviyeli dil için prosedüre giriş için yığını değiştirir. İki işlenen alır: yığında tahsis edilecek depolama miktarı ve prosedürün iç içe geçme seviyesi.
INSBağlantı noktasından dizeye girişeşittir
İÇİNDE (E)AX, DXMOV ES:[(E)DI], (E)AX; (E) DI'yi işlenen boyutuna ve DF'ye göre ayarlayın
AYRILMAKYığın çerçevesinden ayrılÖnceki ENTER komutuyla oluşturulan yerel yığın depolamasını serbest bırakır.
ÇIKIŞLARBağlantı noktasına çıkış dizesieşittir
MOV (E)AX, DS:[(E)]DIŞARI DX, (E)AX; (E) SI'yı işlenen boyutuna ve DF'ye göre ayarlayın
POPAYığından tüm genel amaçlı kayıtları popeşittir
POP DIPOP POP BPPOP AX ; burada POP SP yok, tek yaptığı SP EKLE, 2'dir (çünkü AX daha sonra üzerine yazılacaktır)POP BXPOP DXPOP CXPOP AX
PUSHATüm genel amaçlı kayıtları yığına itineşittir
İT AXİT CXİT DXİT BXİT SP ; Kaydedilen değer, başlangıç ​​SP değeridirİT BPİT İT DI
Hemen PUSHYığına anında bir bayt / kelime değeri itineşittir
İT 12 sa.İT 1200 saat
IMUL anındaAnında bayt / kelime değerinin imzalı çarpımıeşittir
IMUL BX,12 sa.IMUL DX,1200 saatIMUL CX, DX, 12 sa.IMUL BX, , 1200 saatIMUL DI, kelime ptr [BX+], 12 sa.IMUL , kelime ptr [BP-4], 1200 saat
SHL / SHR / SAL / SAR / ROL / ROR / RCL / RCR acilAnlık değeri 1'den büyük olan bitleri döndür / kaydıreşittir
ROL AX,3SHR BL,3

İle eklendi 80286

TalimatAnlamNotlar
ARPLSeçicinin RPL alanını ayarla
CLTSCR0 kaydındaki görev anahtarlamalı bayrağı temizle
LARErişim hakları baytını yükle
LGDTGlobal tanımlayıcı tabloyu yükle
KAPAKKesme tanımlayıcı tablosunu yükle
LLDTYerel tanımlayıcı tabloyu yükleyin
LMSWMakine durum kelimesini yükle
HEPSİNİ YÜKLEGDT gibi dahili olanlar dahil tüm CPU kayıtlarını yükleyinBelgelenmemiş, yalnızca 80286 ve 80386
LSLYük bölümü sınırı
LTRGörev kaydını yükle
SGDTGlobal tanımlayıcı tablosunu saklayın
SIDTKesme tanımlayıcı tablosunu sakla
SLDTYerel tanımlayıcı tablosunu saklayın
SMSWMakine durumu kelimesini sakla
STRGörev kaydını sakla
VERROkumak için bir bölümü doğrulayın
VERWYazmak için bir bölümü doğrulayın

İle eklendi 80386

TalimatAnlamNotlar
BSFİleri bit taraması
BSRBit tarama ters
BTBit testi
BTCBit testi ve tamamlayıcı
BTRBit testi ve sıfırlama
BTSBit testi ve seti
CDQÇift kelimeyi dört kelimeye dönüştürİşaret, EAX'ı EDX'e genişletir ve dört kelimeli EDX: EAX'i oluşturur. (I) DIV, giriş olarak EDX: EAX'i kullandığından, (I) DIV'den önce EDX manuel olarak başlatılmadıysa (64/32 bölümünde olduğu gibi) EAX ayarlandıktan sonra CDQ çağrılmalıdır.
CMPSDDize çift kelimesini karşılaştırES: [(E) DI] ile DS'yi karşılaştırır: [(E) SI] ve DF'ye bağlı olarak hem (E) DI hem de (E) SI'yı artırır veya azaltır; REP öneki olabilir
CWDEKelimeyi çift kelimeye dönüştürCWD'den farklı olarak, CWDE işareti AX'i AX'ten DX'e: AX'e uzatır.
IBTSBit Dizesi Ekle80386 B1 adımı ile sona erdi
INSDBağlantı noktasından çift kelimeli dizeye giriş
IRETxDönüşü kes; D soneki 32 bit dönüş anlamına gelir, F son eki epilog kodu oluşturmaz (yani LEAVE komutu)32 bit durumlarda IRET yerine IRETD kullanın
JECXZECX sıfırsa atla
LFS, LGSUzak işaretçiyi yükle
LSSYığın segmenti yükle
LODSDDize çift kelime yükleEAX = * ES: EDI ± 1; (±â, DF'ye bağlıdır, ES geçersiz kılınamaz); REP öneki olabilir
DÖNGÜ, DÖNGÜccWDöngü, koşullu döngüLOOP ile aynı, DÖNGÜcc önceki işlemciler için
DÖNGÜ, DÖNGÜEşitken döngüEğer (cc && --ECX) goto lbl;, cc = Z(ero), E(qual), NaçıkZero, N(açık)E(qual)
MOV'dan / CR / DR / TR'yeÖzel kayıtlara / kayıtlardan taşımaCR = kontrol kayıtları, DR = hata ayıklama kayıtları, TR = test kayıtları (80486'ya kadar)
MOVSDDize çift kelimesini taşı* (dword *) ES: EDI ± ± = * (dword *) ESI ± ±; (± ±, DF'ye bağlıdır); REP öneki olabilir
MOVSXSign-extension ile taşı(uzun) r = (işaretli karakter) r / m; ve benzeri
MOVZXSıfır uzatma ile taşı(uzun) r = (işaretsiz karakter) r / m; ve benzeri
OUTSDÇift kelimeli dizeden bağlantı noktasına çıktı bağlantı noktası [DX] = * (uzun *) ESI ± ±; (± ±, DF'ye bağlıdır)
POPADYığından tüm çift kelimeli (32 bit) kayıtları popYığın dışında ESP'yi kaydettirmez
POPFDVerileri EFLAGS kaydına girin
PUSHADTüm çift kelimeli (32 bit) kayıtları yığına itin
PUSHFDEFLAGS kaydını yığına itin
SCASDDizi verisi çift kelimesini taraES: [(E) DI] ile EAX ve DF'ye bağlı olarak artışlar veya azalmalar (E) DI'yi karşılaştırır; REP öneki olabilir
SETccBaytı koşulda bire, aksi takdirde sıfıra ayarlayın(SETA, SETAE, SETB, SETBE, SETC, SETE, SETG, SETGE, SETL, SETLE, SETNA, SETNAE, SETNB, SETNBE, SETNC, SETNE, SETNG, SETNGE, SETNL, SETNLE, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETPE, SETPO, SETS, SETZ)
SHLDÇift kelimeyi sola kaydır
SHRDÇift kelimeyi sağa kaydırr1 = r1 >> CL ∣ r2 << (32-CL); CL yerine, hemen 1 kullanılabilir
STOSDDize çift kelime saklayın* ES: EDI ± 1 = EAX; (±â, DF'ye bağlıdır, ES geçersiz kılınamaz); REP öneki olabilir
XBTSBit Dizesini Çıkar80386 B1 adımı ile sona erdi

İle eklendi 80486

TalimatAnlamNotlar
BSWAPBayt Değiştirmer = r<<24 | r<<8&0x00FF0000 | r>>8&0x0000FF00 | r>>24; Yalnızca 32 bitlik kayıtlar için tanımlanmıştır. Genellikle küçük endian ve büyük endian temsilleri arasında geçiş yapmak için kullanılır. 16 bitlik kayıtlarla kullanıldığında 486'da çeşitli farklı sonuçlar üretir,[2] 586 ve Boch'lar /QEMU.[3]
CMPXCHGatomik coMPare ve eXCHanGeGörmek Karşılaştır ve değiştir / daha sonra 80386'da belgelenmemiş işlem kodu olarak mevcut
INVDDahili Önbellekleri Geçersiz KılDahili önbellekleri temizleyin
INVLPGGeçersiz kılmak TLB GirişBelirtilen verileri içeren sayfa için TLB Girişini geçersiz kılın
WBINVDGeri Yaz ve Önbelleği Geçersiz Kılİşlemcinin dahili önbelleğindeki tüm değiştirilmiş önbellek satırlarını ana belleğe geri yazar ve dahili önbellekleri geçersiz kılar.
XADDeXchange ve ADDİlk işleneni ikinci işlenenle değiştirir, ardından iki değerin toplamını hedef işlenene yükler.

İle eklendi Pentium

TalimatAnlamNotlar
CPUIDCPU Kimliğiİşlemci kimliği ve özellikleri ile ilgili verileri döndürür ve verileri EAX, EBX, ECX ve EDX kayıtlarına döndürür. EAX kaydı tarafından belirtilen talimat fonksiyonları.[1] Bu da daha sonra eklendi 80486 işlemciler
CMPXCHG8BCoMPare ve eXCHanGe 8 baytEDX: EAX'i m64 ile karşılaştırın. Eşitse, ZF'yi ayarlayın ve ECX: EBX'i m64'e yükleyin. Aksi takdirde, ZF'yi temizleyin ve m64'ü EDX: EAX'e yükleyin.
RDMSRDan oku Modele özgü kayıtYük MSR ECX tarafından EDX'e belirtildi: EAX
RDTSCGerçek Zaman Damgası Sayacıİşlemci "ÇEVRİMİÇİ" olduğundan beri işlemci tiklerinin sayısını verir (sistemin son açılışından itibaren)
WRMSRModele Özgü Kayda YazmaDeğeri EDX'e yazın: EAX MSR ECX tarafından belirtildi
RSM[4]Sistem Yönetimi Modundan Devam EtBu i tarafından tanıtıldı386SL ve daha sonra ve aynı zamanda i486SL ve sonra. Özgeçmiş Sistem Yönetimi Modu (SMM)

Pentium MMX ile eklendi

TalimatAnlamNotlar
RDPMCPMC'yi [Performans İzleme Sayacı] okuyunECX kaydında EDX kayıtlarında belirtilmiştir: EAX

Ayrıca MMX kayıtları ve MMX destek talimatları eklendi. Hem tam sayı hem de kayan nokta işlemleri için kullanılabilirler, aşağıya bakın.

İle eklendi AMD K6

TalimatAnlamNotlar
SYSCALLişlevsel olarak SYSENTER ile eşdeğerdir
SYSRETişlevsel olarak SYSEXIT'e eşdeğerdir

AMD, bu özellik için CPUID algılama bitini K6-II'den değiştirdi.

İle eklendi Pentium Pro

TalimatAnlamNotlar
CMOVccKoşullu hareket(CMOVA, CMOVAE, CMOVB, CMOVBE, CMOVC, CMOVE, CMOVG, CMOVGE, CMOVL, CMOVLE, CMOVNA, CMOVNAE, CMOVNB, CMOVNBE, CMOVNC, CMOVNE, CMOVNG, CMOVNGE, CMOVNL, CMOVNLE, CMOVNO, CMOVNO, CMOVNLE, CMOVNO , CMOVP, CMOVPE, CMOVPO, CMOVS, CMOVZ)
UD2Tanımsız TalimatGeçersiz bir işlem kodu istisnası oluşturur. Bu talimat, yazılım testinin açıkça geçersiz bir işlem kodu oluşturması için sağlanır. Bu talimatın işlem kodu bu amaç için ayrılmıştır.

İle eklendi Pentium II

TalimatAnlamNotlar
SYSENTERSYStem çağrısı ENTERBazen Hızlı Sistem Çağrısı talimatı olarak da adlandırılan bu talimat, işletim sistemi çağrılarının performansını artırmayı amaçlıyordu. Pentium Pro'da, CPUID talimatı, bu talimatları yanlış olarak mevcut olarak rapor eder.
SYSEXITSYStem çağrı ÇIKIŞI

İle eklendi SSE

Talimatİşlem koduAnlamNotlar
NOP r / m160F 1F / 0Çok baytlı işlem yok talimatı.
NOP r / m32
PREFETCHT00F 18/1Verileri Adresten Önceden GetirTüm önbellek seviyelerine önceden getir
PREFETCHT10F 18/2Verileri Adresten Önceden GetirHARİÇ tüm önbellek düzeylerine önceden getir[5][6] L1
PREFETCHT20F 18/3Verileri Adresten Önceden GetirL1 ve L2 HARİÇ tüm önbellek düzeylerine önceden getir
PREFETCHNTA0F 18/0Verileri Adresten Önceden GetirGeçici olmayan önbellek yapısına önceden getirerek önbellek kirliliğini en aza indirin.
SFENCE0F AE F8Mağaza ÇitiSFENCE çağrısından önce gerçekleşen tüm mağaza işlemlerinin küresel olarak görünür olduğundan emin olmak için işlemci ipucu

İle eklendi SSE2

Talimatİşlem koduAnlamNotlar
CLFLUSH m80F AE / 7Önbellek Hattı Temizlemesiİşlemci önbellek hiyerarşisinin tüm düzeylerinden kaynak işlenenle belirtilen doğrusal adresi içeren önbellek satırını geçersiz kılar
LFENCE0F AE E8Yük ÇitiYük işlemlerini seri hale getirir.
MFENCE0F AE F0Hafıza ÇitiMFENCE komutundan önce verilen tüm yükleme ve saklama talimatlarında bir serileştirme işlemi gerçekleştirir.
MOVNTI m32, r320F C3 / rÇift Kelimeyi Geçici Olmayan Olarak TaşıÇift kelimeyi r32'den m32'ye taşıyarak önbellek hiyerarşisindeki kirliliği en aza indirin.
DURAKLATF3 90Döngü Döngüsü İpucuİşlemciye, aşağıdaki kodun önbelleğe alınabilirlik için bir dönme döngüsü olduğuna dair bir ipucu sağlar

İle eklendi SSE3

TalimatAnlamNotlar
MONİTÖR EAX, ECX, EDXKurulum İzleme AdresiDonanım tarafından izlenecek doğrusal bir adres aralığı ayarlar ve monitörü etkinleştirir.
MWAIT EAX, ECXBekle İzleİşlemci, komutun yürütülmesini durdurmak ve bir olay sınıfı meydana gelene kadar uygulamaya bağlı optimize edilmiş bir duruma girmek için ipucu verir.

İle eklendi SSE4.2

Talimatİşlem koduAnlamNotlar
CRC32 r32, r / m8F2 0F 38 F0 / rCRC32'yi biriktirinHesaplamalar CRC CRC-32C (Castagnoli) polinomu 0x11EDC6F41 (normal form 0x1EDC6F41) kullanarak değer. Bu, iSCSI'de kullanılan polinomdur. Ethernet'te kullanılan daha popüler olanın aksine, paritesi çifttir ve böylece tek sayıda değişen bit ile herhangi bir hatayı tespit edebilir.
CRC32 r32, r / m8F2 REX 0F 38 F0 / r
CRC32 r32, r / m16F2 0F 38 F1 / r
CRC32 r32, r / m32F2 0F 38 F1 / r
CRC32 r64, r / m8F2 REX.W 0F 38 F0 / r
CRC32 r64, r / m64F2 REX.W 0F 38 F1 / r
CRC32 r32, r / m8F2 0F 38 F0 / r

İle eklendi x86-64

TalimatAnlamNotlar
CDQEEAX'i RAX'e genişletme işareti
CQORAX'i RDX'e genişletme: RAX
CMPSQCoMPare String Quadword
CMPXCHG16BCoMPare ve eXCHanGe 16 Bayt
IRETQKesmeden 64-bit Dönüş
JRCXZRCX sıfırsa atla
LODSQLoaD String Quadword
MOVSXD32 bitten 64 bit'e genişletme işaretli MOV
POPFQPOP RFLAGS Kaydı
PUSHFQPUSH RFLAGS Kaydı
RDTSCPGerçek Zaman Damgası Sayacı ve İşlemci Kimliği
SCASQSCAn String Quadword
STOSQSTOre String Quadword
SWAPGSGS tabanını KernelGSBase MSR ile değiştirin

İle eklendi AMD-V

TalimatAnlamNotlarİşlem kodu
CLGIGlobal Kesinti İşaretini TemizleGIF'i temizler0x0F 0x01 0xDD
INVLPGABelirtilen ASID'de TLB girişini geçersiz kılınRAX'te belirtilen sanal sayfa ve ECX'te belirtilen ASID için TLB eşlemesini geçersiz kılar.0x0F 0x01 0xDF
MOV (CRn)Kontrol kayıtlarına / kayıtlarından taşımaKontrol kaydı için 32 veya 64 bit içerikleri taşır ve bunun tersi de geçerlidir.0x0F 0x22 veya 0x0F 0x20
MOV (DRn)Hata ayıklama kayıtlarına gitme veya bu kayıtlardan taşımaKontrol kaydı için 32 veya 64 bit içerikleri taşır ve bunun tersi de geçerlidir.0x0F 0x21 veya 0x0F 0x23
CİLTOnay ile Güvenli Başlatma ve AtlamaGüvenli hash karşılaştırmasına dayalı güvenilir yazılımın doğrulanabilir başlangıcı0x0F 0x01 0xDE
STGIGlobal Kesinti Bayrağı AyarlaGIF'i ayarlar.0x0F 0x01 0xDC
VMLOADVMCB'den yükleme durumuRAX kaydındaki fiziksel adres tarafından belirtilen VMCB'den işlemci durumunun bir alt kümesini yükler.0x0F 0x01 0xDA
VMMCALLVMM'yi araYalnızca VMM ile iletişim kurmak için kullanılır0x0F 0x01 0xD9
VMRUNSanal makineyi çalıştırKonuk işletim sistemine geçiş yapar.0x0F 0x01 0xD8
VMSAVEDurumu VMCB'ye kaydetİlave konuk durumunu VMCB'ye kaydeder.0x0F 0x01 0xDB

İle eklendi Intel VT-x

TalimatAnlamNotlarİşlem kodu
INVEPTEPT'den Türetilen Çevirileri Geçersiz KılTLB'lerde ve sayfalama yapısı önbelleklerinde EPT'den türetilmiş girişleri geçersiz kılar.0x66 0x0F 0x38 0x80
INVVPIDVPID'ye Göre Çevirileri Geçersiz KılVPID'ye dayalı olarak TLB'lerdeki ve sayfalama yapısı önbelleklerindeki girişleri geçersiz kılar.0x66 0x0F 0x38 0x80
VMFUNCVM işlevini çağırEAX'te belirtilen VM işlevini çağırın.0x0F 0x01 0xD4
VMPTRLDİşaretçiyi Sanal Makine Kontrol Yapısına YükleGeçerli VMCS işaretçisini bellekten yükler.0x0F 0xC7 / 6
VMPTRSTİşaretçiyi Sanal Makine Kontrol Yapısına KaydetGeçerli VMCS işaretçisini belirli bir bellek adresine kaydeder. Bu komutun işlenen her zaman 64 bittir ve daima bellekte bulunur.0x0F 0xC7 / 7
VMCLEARSanal Makine Kontrol Yapısını TemizleÖnbelleğe alınmış verileri VMCS'ye yazar0x66 0x0F 0xC7 / 6
VMREADSanal Makine Kontrol Yapısından Alanı OkuVMCS'deki bir alanı okur0x0F 0x78
VMWRITEAlanı Sanal Makine Kontrol Yapısına YazVMCS'deki bir alanı değiştirir0x0F 0x79
VMCALLSanal Makine İzleyicisine ÇağrıKonuk Sistemden VM İzleme işlevini çağırır0x0F 0x01 0xC1
VMLAUNCHSanal Makineyi BaşlatınMevcut VMCS tarafından yönetilen sanal makineyi başlatın0x0F 0x01 0xC2
VMRESUMESanal Makineyi Devam EttirMevcut VMCS tarafından yönetilen sanal makineyi devam ettirin0x0F 0x01 0xC3
VMXOFFVMX İşleminden ÇıkDonanım destekli sanallaştırma ortamını durdurur0x0F 0x01 0xC4
VMXONVMX İşlemine GirinDonanım destekli sanallaştırma ortamına girer0xF3 0x0F 0xC7 / 6

İle eklendi ABM

LZCNT, POPCNT (POPulation CouNT) - gelişmiş bit manipülasyonu

İle eklendi BMI1

ANDN, BEXTR, BLSI, BLSMSK, BLSR, TZCNT

İle eklendi BMI2

BZHI, MULX, PDEP, PEXT, RORX, SARX, SHRX, SHLX

İle eklendi TBM

AMD, TBM'yi BMI1 ile birlikte Piledriver[7] işlemci serisi; daha sonra AMD Jaguar ve Zen tabanlı işlemciler TBM'yi desteklemez.[8] Hiçbir Intel işlemcisi (2020 itibariyle) TBM'yi desteklemiyor.

TalimatAçıklama[9]Eşdeğer C ifadesi[10]
BEXTRBit alanı ekstresi (anında)(src >> başla) & ((1 << len) - 1)
BLCFILLEn düşük net bitten doldurunx & (x + 1)
BLCIEn düşük net biti izole edinx | ~ (x + 1)
BLCICEn düşük net biti ve tamamlayıcıyı izole edin~ x & (x + 1)
BLCMSKEn düşük net bitten maskelemex ^ (x + 1)
BLCSEn düşük net biti ayarlax | (x + 1)
BLSFILLEn düşük ayarlanmış bitten doldurunx | (x - 1)
BLSICEn düşük ayarlı biti ve tamamlayıcıyı izole edin~ x | (x - 1)
T1MSKCSonda olanlardan ters maske~ x | (x + 1)
TZMSKSondaki sıfırlardan maskele~ x & (x - 1)

İle eklendi CLMUL komut seti

Talimatİşlem koduAçıklama
PCLMULQDQ xmmreg, xmmrm, imm66 0f 3a 44 / r ibSonlu alan üzerinde iki 64-bit polinomun taşımasız çarpımını gerçekleştirin GF(2k).
PCLMULLQLQDQ xmmreg, xmmrm66 0f 3a 44 / r 00İki kütüğün düşük yarısını çarpın.
PCLMULHQLQDQ xmmreg, xmmrm66 0f 3a 44 / r 01Hedef yazmacının yüksek yarısını kaynak yazmacının düşük yarısıyla çarpın.
PCLMULLQHQDQ xmmreg, xmmrm66 0f 3a 44 / r 10Hedef yazmacının düşük yarısını kaynak yazmacının yüksek yarısıyla çarpın.
PCLMULHQHQDQ xmmreg, xmmrm66 0f 3a 44 / r 11İki kütüğün yüksek yarısını çarpın.

İle eklendi Intel ADX

TalimatAçıklama
ADCXİki işaretsiz tamsayı artı taşıma ekler, taşıma işaretinden taşımayı okur ve gerekirse oraya ayarlar. Taşıma dışındaki diğer bayrakları etkilemez.
ADOXİki işaretsiz tamsayı artı taşıma ekler, taşma bayrağından taşımayı okur ve gerekirse oraya ayarlar. Taşma dışındaki diğer bayrakları etkilemez.

x87 kayan noktalı talimatlar

Orijinal 8087 Talimatlar

TalimatAnlamNotlar
F2XM1daha kesin için x sıfıra yakın
FABSMutlak değer
FADDEkle
FADDPEkle ve pop
FBLDBCD'yi yükle
FBSTPBCD'yi saklayın ve pop
FCHSİşareti değiştir
FCLEXİstisnaları temizle
FCOMKarşılaştırmak
FCOMPKarşılaştırın ve pop yapın
FCOMPPKarşılaştırın ve iki kez pop yapın
FDECSTPKayan nokta yığın işaretçisini azalt
FDISIKesintileri devre dışı bırakınYalnızca 8087, aksi takdirde FNOP
FDIVBölPentium FDIV hatası
FDIVPBöl ve çıkar
FDIVRBöl tersine çevrildi
FDIVRPTersine böl ve pop
FENIKesintileri etkinleştirYalnızca 8087, aksi takdirde FNOP
ÜCRETSİZÜcretsiz kayıt
FIADDTamsayı ekle
FICOMTamsayı karşılaştırması
FICOMPTamsayı karşılaştırma ve pop
FIDIVTamsayı bölme
FIDIVRTamsayı bölme tersine çevrildi
DOSYATamsayı yükle
FIMULTamsayı çarpımı
FINCSTPKayan nokta yığın işaretçisini artır
FINITKayan noktalı işlemciyi başlatın
YUMRUKTamsayı depola
FISTPTam sayı ve pop saklayın
FISUBTamsayı çıkarma
FISUBRTamsayı çıkarma işlemi tersine çevrildi
FLDKayan nokta yükü
FLD11.0'ı yığına yükle
FLDCWKontrol kelimesini yükle
FLDENVYük ortamı durumu
FLDENVWYük ortamı durumu, 16 bit
FLDL2EYük günlük2(e) yığına
FLDL2TYük günlük2(10) yığına
FLDLG2Yük günlük10(2) yığına
FLDLN2Yük ln (2) yığına
FLDPIYük π yığına
FLDZ0.0'ı yığına yükle
FMULÇarpmak
FMULPÇarp ve patlat
FNCLEXİstisnaları temizle, beklemek yok
FNDISIKesintileri devre dışı bırakın, beklemek yokYalnızca 8087, aksi takdirde FNOP
FNENIKesintileri etkinleştirin, beklemeyinYalnızca 8087, aksi takdirde FNOP
FNINITKayan noktalı işlemciyi başlatın, beklemeyin
FNOPİşlem yok
FNSAVEFPU durumunu kaydedin, bekleme yok, 8 bit
FNSAVEWFPU durumunu kaydedin, beklemeyin, 16 bit
FNSTCWKontrol kelimesini saklayın, bekleme yok
FNSTENVFPU ortamını saklayın, beklemeyin
FNSTENVWFPU ortamını depolayın, beklemeyin, 16 bit
FNSTSWDurum kelimesini saklayın, bekleme yok
FPATANKısmi arktanjant
FPREMKısmi kalan
FPTANKısmi teğet
FRNDINTTam sayıya yuvarla
FRSTORKaydedilen durumu geri yükle
FRSTORWKaydedilen durumu geri yükleBelki de 8087'de gerçekten mevcut değil
FSAVEFPU durumunu kaydet
FSAVEWFPU durumunu kaydet, 16 bit
FSCALE2 faktör ile ölçekleme
FSQRTKare kök
FSTKayan nokta deposu
FSTCWMağaza kontrol kelimesi
FSTENVFPU ortamını depolayın
FSTENVWFPU ortamını saklayın, 16 bit
FSTPMağaza ve pop
FSTSWMağaza durumu kelimesi
FSUBÇıkar
FSUBPÇıkar ve çıkar
FSUBRTers çıkarma
FSUBRPTers çıkarma ve pop
FTSTSıfır için test edin
FWAITFPU yürütülürken bekleyin
FXAMKoşul işaretlerini inceleyin
FXCHDeğişim kayıtları
FXTRACTÜstel ve anlamı çıkarın
FYL2Xy · Günlük2 xEğer y = günlükb 2, sonra üs-b logaritma hesaplanır
FYL2XP1y · Günlük2 (x+1)daha kesin günlük2 z x sıfıra yakınsa

Belirli işlemcilerde eklendi

İle eklendi 80287

TalimatAnlamNotlar
FSETPMKorumalı modu ayarlaYalnızca 80287, aksi takdirde FNOP

İle eklendi 80387

TalimatAnlamNotlar
FCOSKosinüs
FLDENVDYük ortamı durumu, 32 bit
FSAVEDFPU durumunu kaydet, 32 bit
FPREM1Kısmi kalanIEEE bakiyesini hesaplar
FRSTORDKaydedilmiş durumu geri yükle, 32 bit
FSINSinüs
FSINCOSSinüs ve kosinüs
FSTENVDFPU ortamını saklayın, 32 bit
FUCOMSırasız karşılaştırma
FUCOMPSırasız karşılaştırma ve pop
FUCOMPPSırasız karşılaştırma ve iki kez pop

İle eklendi Pentium Pro

  • FCMOV varyantlar: FCMOVB, FCMOVBE, FCMOVE, FCMOVNB, FCMOVNBE, FCMOVNE, FCMOVNU, FCMOVU
  • FCOMI varyantlar: FCOMI, FCOMIP, FUCOMI, FUCOMIP

İle eklendi SSE

FXRSTOR, FXSAVE

Bunlar, SSE desteği içermeyen sonraki Pentium II'lerde de desteklenmektedir

SSE3 ile eklendi

FISTTP (x87'den tamsayıya dönüştürme, durum sözcüğünden bağımsız olarak kesme ile)

SIMD Talimatlar

MMX Talimatlar

MMX komutları, 64 bit genişliğindeki mm yazmaçlarında çalışır. FPU kayıtları ile paylaşılırlar.

Orijinal MMX talimatları

İle eklendi Pentium MMX

Talimatİşlem koduAnlamNotlar
EMMS0F 77Boş MMX Teknoloji DurumuFPU tarafından kullanılmak üzere tüm x87 FPU kayıtlarını işaretler
MOVD mm, r / m320F 6E / rÇift kelimeyi taşı
MOVD r / m32, mm0F 7E / rÇift kelimeyi taşı
MOVQ mm / m64, mm0F 7F / rDört kelimeyi taşı
MOVQ mm, mm / m640F 6F / rDört kelimeyi taşı
MOVQ mm, r / m64REX.W + 0F 6E / rDört kelimeyi taşı
MOVQ r / m64, mmREX.W + 0F 7E / rDört kelimeyi taşı
PAKETLER DSG mm1, mm2 / m640F 6B / rÇift kelimeyi kelimelere paketleyin (doygunluk ile işaretlenmiştir)
PAKETLERWB mm1, mm2 / m640F 63 / rKelimeleri bayt olarak paketleyin (doygunluk ile işaretlenmiştir)
PACKUSWB mm, mm / m640F 67 / rKelimeleri bayt olarak paketleyin (doygunluk ile işaretsiz)
PADDB mm, mm / m640F FC / rPaketlenmiş bayt tam sayıları ekleyin
PADDW mm, mm / m640F FD / rPaketlenmiş kelime tam sayıları ekleyin
PADDD mm, mm / m640F FE / rPaketlenmiş çift kelimeli tamsayılar ekleyin
PADDQ mm, mm / m640F D4 / rPaketlenmiş dörtlü tamsayılar ekleyin
PEDLER B mm, mm / m640F EC / rPaketlenmiş işaretli bayt tam sayıları ve doygunluk ekleyin
PEDLERW mm, mm / m640F ED / rPaketlenmiş işaretli kelime tam sayıları ekleyin ve doygunluk
PADDUSB mm, mm / m640F DC / rPaket işaretsiz bayt tam sayıları ekleyin ve doygunluk
PADDUSW mm, mm / m640F DD / rPaket işaretsiz kelime tamsayıları ekleyin ve doygunlaştırın
PAND mm, mm / m640F DB / rBitsel AND
PANDN mm, mm / m640F DF / rBitsel VE DEĞİL
POR mm, mm / m640F EB / rBit tabanlı VEYA
PXOR mm, mm / m640F EF / rBitsel ÖZELVEYA
PCMPEQB mm, mm / m640F 74 / rEşitlik için paketlenmiş baytları karşılaştırın
PCMPEQW mm, mm / m640F 75 / rEşitlik için paketlenmiş kelimeleri karşılaştırın
PCMPEQD mm, mm / m640F 76 / rEşitlik için paketlenmiş çift kelimeleri karşılaştırın
PCMPGTB mm, mm / m640F 64 / devirŞundan büyük olan paket işaretli bayt tam sayılarını karşılaştırın
PCMPGTW mm, mm / m640F 65 / rŞundan büyük olan paket işaretli kelime tam sayılarını karşılaştırın
PCMPGTD mm, mm / m640F 66 / devirŞundan büyük olan paketlenmiş işaretli çift kelime tam sayılarını karşılaştırın
PMADDWD mm, mm / m640F F5 / rPaketlenmiş kelimeleri çarpın, bitişik çift kelime sonuçları ekleyin
PMULHW mm, mm / m640F E5 / rPaketlenmiş işaretli kelime tam sayılarını çarpın, 16 bitlik yüksek sonuçları saklayın
PMULLW mm, mm / m640F D5 / rPaketlenmiş işaretli kelime tam sayılarını çarpın, düşük 16 bitlik sonuçları saklayın
PSLLW mm1, imm80F 71/6 ibSol kelimeleri kaydır, sıfırları kaydır
PSLLW mm, mm / m640F F1 / rSol kelimeleri kaydır, sıfırları kaydır
PSLLD mm, imm80F 72/6 ibÇift kelimeleri sola kaydır, sıfırları kaydır
PSLLD mm, mm / m640F F2 / rÇift kelimeleri sola kaydır, sıfırları kaydır
PSLLQ mm, imm80F 73/6 ibDörtlü sola kaydır, sıfırlara kaydır
PSLLQ mm, mm / m640F F3 / rDörtlü sola kaydır, sıfırlara kaydır
PSRAD mm, imm80F 72/4 ibÇift kelimeleri sağa kaydır, işaret bitlerini kaydır
PSRAD mm, mm / m640F E2 / rÇift kelimeleri sağa kaydır, işaret bitlerini kaydır
PSRAW mm, imm80F 71/4 ibKelimeleri sağa kaydır, işaret bitlerini kaydır
PSRAW mm, mm / m640F E1 / rKelimeleri sağa kaydır, işaret bitlerini kaydır
PSRLW mm, imm80F 71/2 ibKelimeleri sağa kaydır, sıfırları kaydır
PSRLW mm, mm / m640F D1 / rKelimeleri sağa kaydır, sıfırları kaydır
PSRLD mm, imm80F 72/2 ibÇift kelimeleri sağa kaydır, sıfırları kaydır
PSRLD mm, mm / m640F D2 / rÇift kelimeleri sağa kaydır, sıfırları kaydır
PSRLQ mm, imm80F 73/2 ibSağ dört kelimeyi kaydır, sıfırları kaydır
PSRLQ mm, mm / m640F D3 / rSağ dört kelimeyi kaydır, sıfırları kaydır
PSUBB mm, mm / m640F F8 / rPaketlenmiş bayt tam sayılarını çıkarın
PSUBW mm, mm / m640F F9 / rPaketlenmiş kelime tam sayılarını çıkarın
PSUBD mm, mm / m640F FA / rPaketlenmiş çift kelimeli tam sayıları çıkarın
PSUBSB mm, mm / m640F E8 / rDoygunluk ile işaretli paketlenmiş baytları çıkarın
PSUBSW mm, mm / m640F E9 / rDoygunluk ile işaretli paketlenmiş kelimeleri çıkarın
PSUBUSB mm, mm / m640F D8 / rDoygunluk ile işaretsiz paketlenmiş baytları çıkarın
PSUBUSW mm, mm / m640F D9 / rDoygunluğa sahip işaretsiz paketlenmiş kelimeleri çıkarın
PUNPCKHBW mm, mm / m640F 68 / devirYüksek sıralı baytları paketten çıkarın ve araya ekleyin
PUNPCKHWD mm, mm / m640F 69 / rYüksek sıralı kelimeleri paketinden çıkarın ve araya ekleyin
PUNPCKHDQ mm, mm / m640F 6A / rYüksek dereceli çift sözcükleri paketinden çıkarın ve araya ekleyin
PUNPCKLBW mm, mm / m320F 60 / devirDüşük sıralı baytları paketten çıkarın ve araya ekleyin
PUNPCKLWD mm, mm / m320F 61 / rDüşük sıralı kelimeleri paketten çıkarın ve araya ekleyin
PUNPCKLDQ mm, mm / m320F 62 / rDüşük dereceli çift kelimeleri paketten çıkarın ve araya ekleyin

Belirli işlemcilere eklenen MMX talimatları

EMMI Talimatlar

İle eklendi 6x86MX itibaren Cyrix, şimdi kullanımdan kaldırıldı

PAVEB, PADDSIW, PMAGW, PDISTIB, PSUBSIW, PMVZB, PMULHRW, PMVNZB, PMVLZB, PMVGEZB, PMULHRIW, PMACHRIW

MMX talimatları ile eklendi MMX + ve SSE

Aşağıdaki MMX talimatı SSE ile eklendi. Ayrıca, Athlon MMX + adı altında.

Talimatİşlem koduAnlam
MASKMOVQ mm1, mm20F F7 / rDört Kelimenin Maskeli Hareketi
MOVNTQ m64, mm0F E7 / rGeçici Olmayan İpucu Kullanarak Dört Kelimeyi Taşı
PSHUFW mm1, mm2 / m64, imm80F 70 / r ibDolu Kelimeleri Karıştır
PINSRW mm, r32 / m16, imm80F C4 / rKelime Ekle
PEXTRW reg, mm, imm80F C5 / rKelimeyi Çıkar
PMOVMSKB reg, mm0F D7 / rBayt Maskesini Taşı
PMINUB mm1, mm2 / m640F DA / rMinimum Paketlenmiş İşaretsiz Bayt Tamsayıları
PMAXUB mm1, mm2 / m640F DE / rMaksimum Paketlenmiş İşaretsiz Bayt Tamsayı
PAVGB mm1, mm2 / m640F E0 / rOrtalama Paketlenmiş Tamsayılar
PAVGW mm1, mm2 / m640F E3 / rOrtalama Paketlenmiş Tamsayılar
PMULHUW mm1, mm2 / m640F E4 / rPaketlenmiş İşaretsiz Tamsayıları Çarpın ve Yüksek Sonucu Depolayın
PMINSW mm1, mm2 / m640F EA / rMinimum Paketlenmiş İmzalı Kelime Tamsayıları
PMAXSW mm1, mm2 / m640F EE / rMaksimum Paketlenmiş İmzalı Kelime Tamsayı
PSADBW mm1, mm2 / m640F F6 / rMutlak Farkların Toplamını Hesapla
SSE2 ile eklenen MMX talimatları

Aşağıdaki MMX talimatları SSE2 ile eklendi:

Talimatİşlem koduAnlam
PSUBQ mm1, mm2 / m640F FB / rDört kelime tamsayısını çıkar
PMULUDQ mm1, mm2 / m640F F4 / rİşaretsiz çift kelime tamsayısını çarpın
SSSE3 ile eklenen MMX talimatları
Talimatİşlem koduAnlam
PSIGNB mm1, mm2 / m640F 38 08 / rKarşılık gelen işarete bağlı olarak paketlenmiş bayt tam sayılarını olumsuzla / sıfırla / koru
PSIGNW mm1, mm2 / m640F 38 09 / rKarşılık gelen işarete bağlı olarak paketlenmiş sözcük tam sayılarını olumsuzla / sıfırla / koru
PSIGND mm1, mm2 / m640F 38 0A / rKarşılık gelen işarete bağlı olarak negatif / sıfır / paketlenmiş çift kelime tam sayılarını koru
PSHUFB mm1, mm2 / m640F 38 00 / rBaytları karıştır
PMULHRSW mm1, mm2 / m640F 38 0B / r16-bit işaretli kelimeleri çarpın, ölçeklendirin ve işaretli çift kelimeleri yuvarlaklaştırın, yüksek 16 bit paketleyin
PMADDUBSW mm1, mm2 / m640F 38 04 / rİşaretli ve işaretsiz baytları çarpın, yatay işaretli sözcük çiftleri ekleyin, doymuş işaretli sözcükleri paketleyin
PHSUBW mm1, mm2 / m640F 38 05 / rYatay olarak 16 bitlik işaretli tam sayıları çıkarın ve paketleyin
PHSUBSW mm1, mm2 / m640F 38 07 / r16 bitlik işaretli tamsayıyı doygunluk ile yatay olarak çıkarın ve paketleyin
PHSUBD mm1, mm2 / m640F 38 06 / r32 bitlik işaretli tam sayıları yatay olarak çıkarın ve paketleyin
FADDSW mm1, mm2 / m640F 38 03 / rYatay olarak 16 bitlik işaretli tam sayıları ekleyin ve paketleyin, doymuş tam sayıları mm1'e kadar paketleyin.
PHADDW mm1, mm2 / m640F 38 01 / r16 bitlik tam sayıları yatay olarak ekleyin ve paketleyin
PHADDD mm1, mm2 / m640F 38 02 / r32 bit tam sayıları yatay olarak ekleyin ve paketleyin
PALIGNR mm1, mm2 / m64, imm80F 3A 0F / r ibHedef ve kaynak işlenenleri birleştirin, sağa kaydırılmış bayt hizalı sonucu ayıklayın
PABSB mm1, mm2 / m640F 38 1C / rBaytların mutlak değerini hesaplayın ve işaretsiz sonucu saklayın
PABSW mm1, mm2 / m640F 38 1D / r16 bitlik tam sayıların mutlak değerini hesaplayın ve işaretsiz sonucu saklayın
PABSD mm1, mm2 / m640F 38 1E / r32 bitlik tam sayıların mutlak değerini hesaplayın ve işaretsiz sonucu saklayın

3DNow! Talimatlar

İle eklendi K6-2

FEMMS, PAVGUSB, PF2ID, PFACC, PFADD, PFCMPEQ, PFCMPGE, PFCMPGT, PFMAX, PFMIN, PFMUL, PFRCP, PFRCPIT1, PFRCPIT2, PFRSQIT1, PFRSQRT, PREFDRFUB

3DNow!+ instructions

Added with Athlon ve K6-2+

PF2IW, PFNACC, PFPNACC, PI2FW, PSWAPD

Added with Geode GX

PFRSQRTV, PFRCPV

SSE Talimatlar

Added with Pentium III

SSE instructions operate on xmm registers, which are 128 bit wide.

SSE consists of the following SSE SIMD floating-point instructions:

Talimatİşlem koduAnlam
ANDPS* xmm1, xmm2/m1280F 54 /rBitwise Logical AND of Packed Single-Precision Floating-Point Values
ANDNPS* xmm1, xmm2/m1280F 55 /rBitwise Logical AND NOT of Packed Single-Precision Floating-Point Values
ORPS* xmm1, xmm2/m1280F 56 /rBitwise Logical OR of Single-Precision Floating-Point Values
XORPS* xmm1, xmm2/m1280F 57 /rBitwise Logical XOR for Single-Precision Floating-Point Values
MOVUPS xmm1, xmm2/m1280F 10 /rMove Unaligned Packed Single-Precision Floating-Point Values
MOVSS xmm1, xmm2/m32F3 0F 10 /rMove Scalar Single-Precision Floating-Point Values
MOVUPS xmm2/m128, xmm10F 11 /rMove Unaligned Packed Single-Precision Floating-Point Values
MOVSS xmm2/m32, xmm1F3 0F 11 /rMove Scalar Single-Precision Floating-Point Values
MOVLPS xmm, m640F 12 /rMove Low Packed Single-Precision Floating-Point Values
MOVHLPS xmm1, xmm20F 12 /rMove Packed Single-Precision Floating-Point Values High to Low
MOVLPS m64, xmm0F 13 /rMove Low Packed Single-Precision Floating-Point Values
UNPCKLPS xmm1, xmm2/m1280F 14 /rUnpack and Interleave Low Packed Single-Precision Floating-Point Values
UNPCKHPS xmm1, xmm2/m1280F 15 /rUnpack and Interleave High Packed Single-Precision Floating-Point Values
MOVHPS xmm, m640F 16 /rMove High Packed Single-Precision Floating-Point Values
MOVLHPS xmm1, xmm20F 16 /rMove Packed Single-Precision Floating-Point Values Low to High
MOVHPS m64, xmm0F 17 /rMove High Packed Single-Precision Floating-Point Values
MOVAPS xmm1, xmm2/m1280F 28 /rMove Aligned Packed Single-Precision Floating-Point Values
MOVAPS xmm2/m128, xmm10F 29 /rMove Aligned Packed Single-Precision Floating-Point Values
MOVNTPS m128, xmm10F 2B /rMove Aligned Four Packed Single-FP Non Temporal
MOVMSKPS reg, xmm0F 50 /rExtract Packed Single-Precision Floating-Point 4-bit Sign Mask. The upper bits of the register are filled with zeros.
CVTPI2PS xmm, mm/m640F 2A /rConvert Packed Dword Integers to Packed Single-Precision FP Values
CVTSI2SS xmm, r/m32F3 0F 2A /rConvert Dword Integer to Scalar Single-Precision FP Value
CVTSI2SS xmm, r/m64F3 REX.W 0F 2A /rConvert Qword Integer to Scalar Single-Precision FP Value
MOVNTPS m128, xmm0F 2B /rStore Packed Single-Precision Floating-Point Values Using Non-Temporal Hint
CVTTPS2PI mm, xmm/m640F 2C /rConvert with Truncation Packed Single-Precision FP Values to Packed Dword Integers
CVTTSS2SI r32, xmm/m32F3 0F 2C /rConvert with Truncation Scalar Single-Precision FP Value to Dword Integer
CVTTSS2SI r64, xmm1/m32F3 REX.W 0F 2C /rConvert with Truncation Scalar Single-Precision FP Value to Qword Integer
CVTPS2PI mm, xmm/m640F 2D /rConvert Packed Single-Precision FP Values to Packed Dword Integers
CVTSS2SI r32, xmm/m32F3 0F 2D /rConvert Scalar Single-Precision FP Value to Dword Integer
CVTSS2SI r64, xmm1/m32F3 REX.W 0F 2D /rConvert Scalar Single-Precision FP Value to Qword Integer
UCOMISS xmm1, xmm2/m320F 2E /rUnordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS
COMISS xmm1, xmm2/m320F 2F /rCompare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS
SQRTPS xmm1, xmm2/m1280F 51 /rCompute Square Roots of Packed Single-Precision Floating-Point Values
SQRTSS xmm1, xmm2/m32F3 0F 51 /rCompute Square Root of Scalar Single-Precision Floating-Point Value
RSQRTPS xmm1, xmm2/m1280F 52 /rCompute Reciprocal of Square Root of Packed Single-Precision Floating-Point Value
RSQRTSS xmm1, xmm2/m32F3 0F 52 /rCompute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value
RCPPS xmm1, xmm2/m1280F 53 /rCompute Reciprocal of Packed Single-Precision Floating-Point Values
RCPSS xmm1, xmm2/m32F3 0F 53 /rCompute Reciprocal of Scalar Single-Precision Floating-Point Values
ADDPS xmm1, xmm2/m1280F 58 /rAdd Packed Single-Precision Floating-Point Values
ADDSS xmm1, xmm2/m32F3 0F 58 /rAdd Scalar Single-Precision Floating-Point Values
MULPS xmm1, xmm2/m1280F 59 /rMultiply Packed Single-Precision Floating-Point Values
MULSS xmm1, xmm2/m32F3 0F 59 /rMultiply Scalar Single-Precision Floating-Point Values
SUBPS xmm1, xmm2/m1280F 5C /rSubtract Packed Single-Precision Floating-Point Values
SUBSS xmm1, xmm2/m32F3 0F 5C /rSubtract Scalar Single-Precision Floating-Point Values
MINPS xmm1, xmm2/m1280F 5D /rReturn Minimum Packed Single-Precision Floating-Point Values
MINSS xmm1, xmm2/m32F3 0F 5D /rReturn Minimum Scalar Single-Precision Floating-Point Values
DIVPS xmm1, xmm2/m1280F 5E /rDivide Packed Single-Precision Floating-Point Values
DIVSS xmm1, xmm2/m32F3 0F 5E /rDivide Scalar Single-Precision Floating-Point Values
MAXPS xmm1, xmm2/m1280F 5F /rReturn Maximum Packed Single-Precision Floating-Point Values
MAXSS xmm1, xmm2/m32F3 0F 5F /rReturn Maximum Scalar Single-Precision Floating-Point Values
LDMXCSR m320F AE /2Load MXCSR Register State
STMXCSR m320F AE /3Store MXCSR Register State
CMPPS xmm1, xmm2/m128, imm80F C2 /r ibCompare Packed Single-Precision Floating-Point Values
CMPSS xmm1, xmm2/m32, imm8F3 0F C2 /r ibCompare Scalar Single-Precision Floating-Point Values
SHUFPS xmm1, xmm2/m128, imm80F C6 /r ibShuffle Packed Single-Precision Floating-Point Values
  • The floating point single bitwise operations ANDPS, ANDNPS, ORPS and XORPS produce the same result as the SSE2 integer (PAND, PANDN, POR, PXOR) and double ones (ANDPD, ANDNPD, ORPD, XORPD), but can introduce extra latency for domain changes when applied values of the wrong type.[11]

SSE2 Talimatlar

Added with Pentium 4

SSE2 SIMD floating-point instructions

SSE2 data movement instructions
Talimatİşlem koduAnlam
MOVAPD xmm1, xmm2/m12866 0F 28 /rMove Aligned Packed Double-Precision Floating-Point Values
MOVAPD xmm2/m128, xmm166 0F 29 /rMove Aligned Packed Double-Precision Floating-Point Values
MOVNTPD m128, xmm166 0F 2B /rStore Packed Double-Precision Floating-Point Values Using Non-Temporal Hint
MOVHPD xmm1, m6466 0F 16 /rMove High Packed Double-Precision Floating-Point Value
MOVHPD m64, xmm166 0F 17 /rMove High Packed Double-Precision Floating-Point Value
MOVLPD xmm1, m6466 0F 12 /rMove Low Packed Double-Precision Floating-Point Value
MOVLPD m64, xmm166 0F 13/rMove Low Packed Double-Precision Floating-Point Value
MOVUPD xmm1, xmm2/m12866 0F 10 /rMove Unaligned Packed Double-Precision Floating-Point Values
MOVUPD xmm2/m128, xmm166 0F 11 /rMove Unaligned Packed Double-Precision Floating-Point Values
MOVMSKPD reg, xmm66 0F 50 /rExtract Packed Double-Precision Floating-Point Sign Mask
MOVSD* xmm1, xmm2/m64F2 0F 10 /rMove or Merge Scalar Double-Precision Floating-Point Value
MOVSD xmm1/m64, xmm2F2 0F 11 /rMove or Merge Scalar Double-Precision Floating-Point Value
SSE2 packed arithmetic instructions
Talimatİşlem koduAnlam
ADDPD xmm1, xmm2/m12866 0F 58 /rAdd Packed Double-Precision Floating-Point Values
ADDSD xmm1, xmm2/m64F2 0F 58 /rAdd Low Double-Precision Floating-Point Value
DIVPD xmm1, xmm2/m12866 0F 5E /rDivide Packed Double-Precision Floating-Point Values
DIVSD xmm1, xmm2/m64F2 0F 5E /rDivide Scalar Double-Precision Floating-Point Value
MAXPD xmm1, xmm2/m12866 0F 5F /rMaximum of Packed Double-Precision Floating-Point Values
MAXSD xmm1, xmm2/m64F2 0F 5F /rReturn Maximum Scalar Double-Precision Floating-Point Value
MINPD xmm1, xmm2/m12866 0F 5D /rMinimum of Packed Double-Precision Floating-Point Values
MINSD xmm1, xmm2/m64F2 0F 5D /rReturn Minimum Scalar Double-Precision Floating-Point Value
MULPD xmm1, xmm2/m12866 0F 59 /rMultiply Packed Double-Precision Floating-Point Values
MULSD xmm1,xmm2/m64F2 0F 59 /rMultiply Scalar Double-Precision Floating-Point Value
SQRTPD xmm1, xmm2/m12866 0F 51 /rSquare Root of Double-Precision Floating-Point Values
SQRTSD xmm1,xmm2/m64F2 0F 51/rCompute Square Root of Scalar Double-Precision Floating-Point Value
SUBPD xmm1, xmm2/m12866 0F 5C /rSubtract Packed Double-Precision Floating-Point Values
SUBSD xmm1, xmm2/m64F2 0F 5C /rSubtract Scalar Double-Precision Floating-Point Value
SSE2 logical instructions
Talimatİşlem koduAnlam
ANDPD xmm1, xmm2/m12866 0F 54 /rBitwise Logical AND of Packed Double Precision Floating-Point Values
ANDNPD xmm1, xmm2/m12866 0F 55 /rBitwise Logical AND NOT of Packed Double Precision Floating-Point Values
ORPD xmm1, xmm2/m12866 0F 56/rBitwise Logical OR of Packed Double Precision Floating-Point Values
XORPD xmm1, xmm2/m12866 0F 57/rBitwise Logical XOR of Packed Double Precision Floating-Point Values
SSE2 compare instructions
Talimatİşlem koduAnlam
CMPPD xmm1, xmm2/m128, imm866 0F C2 /r ibCompare Packed Double-Precision Floating-Point Values
CMPSD* xmm1, xmm2/m64, imm8F2 0F C2 /r ibCompare Low Double-Precision Floating-Point Values
COMISD xmm1, xmm2/m6466 0F 2F /rCompare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
UCOMISD xmm1, xmm2/m6466 0F 2E /rUnordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS
SSE2 shuffle and unpack instructions
Talimatİşlem koduAnlam
SHUFPD xmm1, xmm2/m128, imm866 0F C6 /r ibPacked Interleave Shuffle of Pairs of Double-Precision Floating-Point Values
UNPCKHPD xmm1, xmm2/m12866 0F 15 /rUnpack and Interleave High Packed Double-Precision Floating-Point Values
UNPCKLPD xmm1, xmm2/m12866 0F 14 /rUnpack and Interleave Low Packed Double-Precision Floating-Point Values
SSE2 conversion instructions
Talimatİşlem koduAnlam
CVTDQ2PD xmm1, xmm2/m64F3 0F E6 /rConvert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
CVTDQ2PS xmm1, xmm2/m1280F 5B /rConvert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
CVTPD2DQ xmm1, xmm2/m128F2 0F E6 /rConvert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
CVTPD2PI mm, xmm/m12866 0F 2D /rConvert Packed Double-Precision FP Values to Packed Dword Integers
CVTPD2PS xmm1, xmm2/m12866 0F 5A /rConvert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values
CVTPI2PD xmm, mm/m6466 0F 2A /rConvert Packed Dword Integers to Packed Double-Precision FP Values
CVTPS2DQ xmm1, xmm2/m12866 0F 5B /rConvert Packed Single-Precision Floating-Point Values to Packed Signed Doubleword Integer Values
CVTPS2PD xmm1, xmm2/m640F 5A /rConvert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values
CVTSD2SI r32, xmm1/m64F2 0F 2D /rConvert Scalar Double-Precision Floating-Point Value to Doubleword Integer
CVTSD2SI r64, xmm1/m64F2 REX.W 0F 2D /rConvert Scalar Double-Precision Floating-Point Value to Quadword Integer With Sign Extension
CVTSD2SS xmm1, xmm2/m64F2 0F 5A /rConvert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
CVTSI2SD xmm1, r32/m32F2 0F 2A /rConvert Doubleword Integer to Scalar Double-Precision Floating-Point Value
CVTSI2SD xmm1, r/m64F2 REX.W 0F 2A /rConvert Quadword Integer to Scalar Double-Precision Floating-Point value
CVTSS2SD xmm1, xmm2/m32F3 0F 5A /rConvert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
CVTTPD2DQ xmm1, xmm2/m12866 0F E6 /rConvert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
CVTTPD2PI mm, xmm/m12866 0F 2C /rConvert with Truncation Packed Double-Precision FP Values to Packed Dword Integers
CVTTPS2DQ xmm1, xmm2/m128F3 0F 5B /rConvert with Truncation Packed Single-Precision Floating-Point Values to Packed Signed Doubleword Integer Values
CVTTSD2SI r32, xmm1/m64F2 0F 2C /rConvert with Truncation Scalar Double-Precision Floating-Point Value to Signed Dword Integer
CVTTSD2SI r64, xmm1/m64F2 REX.W 0F 2C /rConvert with Truncation Scalar Double-Precision Floating-Point Value To Signed Qword Integer

SSE2 SIMD integer instructions

SSE2 MMX-like instructions extended to SSE registers

SSE2 allows execution of MMX instructions on SSE registers, processing twice the amount of data at once.

Talimatİşlem koduAnlam
MOVD xmm, r/m3266 0F 6E /rMove doubleword
MOVD r/m32, xmm66 0F 7E /rMove doubleword
MOVQ xmm1, xmm2/m64F3 0F 7E /rMove quadword
MOVQ xmm2/m64, xmm166 0F D6 /rMove quadword
MOVQ r/m64, xmm66 REX.W 0F 7E /rMove quadword
MOVQ xmm, r/m6466 REX.W 0F 6E /rMove quadword
PMOVMSKB reg, xmm66 0F D7 /rMove a byte mask, zeroing the upper bits of the register
PEXTRW reg, xmm, imm866 0F C5 /r ibExtract specified word and move it to reg, setting bits 15-0 and zeroing the rest
PINSRW xmm, r32/m16, imm866 0F C4 /r ibMove low word at the specified word position
PACKSSDW xmm1, xmm2/m12866 0F 6B /rConverts 4 packed signed doubleword integers into 8 packed signed word integers with saturation
PACKSSWB xmm1, xmm2/m12866 0F 63 /rConverts 8 packed signed word integers into 16 packed signed byte integers with saturation
PACKUSWB xmm1, xmm2/m12866 0F 67 /rConverts 8 signed word integers into 16 unsigned byte integers with saturation
PADDB xmm1, xmm2/m12866 0F FC /rAdd packed byte integers
PADDW xmm1, xmm2/m12866 0F FD /rAdd packed word integers
PADDD xmm1, xmm2/m12866 0F FE /rAdd packed doubleword integers
PADDQ xmm1, xmm2/m12866 0F D4 /rAdd packed quadword integers.
PADDSB xmm1, xmm2/m12866 0F EC /rAdd packed signed byte integers with saturation
PADDSW xmm1, xmm2/m12866 0F ED /rAdd packed signed word integers with saturation
PADDUSB xmm1, xmm2/m12866 0F DC /rAdd packed unsigned byte integers with saturation
PADDUSW xmm1, xmm2/m12866 0F DD /rAdd packed unsigned word integers with saturation
PAND xmm1, xmm2/m12866 0F DB /rBitsel AND
PANDN xmm1, xmm2/m12866 0F DF /rBitwise AND NOT
POR xmm1, xmm2/m12866 0F EB /rBitwise OR
PXOR xmm1, xmm2/m12866 0F EF /rBitsel ÖZELVEYA
PCMPEQB xmm1, xmm2/m12866 0F 74 /rCompare packed bytes for equality.
PCMPEQW xmm1, xmm2/m12866 0F 75 /rCompare packed words for equality.
PCMPEQD xmm1, xmm2/m12866 0F 76 /rCompare packed doublewords for equality.
PCMPGTB xmm1, xmm2/m12866 0F 64 /rCompare packed signed byte integers for greater than
PCMPGTW xmm1, xmm2/m12866 0F 65 /rCompare packed signed word integers for greater than
PCMPGTD xmm1, xmm2/m12866 0F 66 /rCompare packed signed doubleword integers for greater than
PMULLW xmm1, xmm2/m12866 0F D5 /rMultiply packed signed word integers with saturation
PMULHW xmm1, xmm2/m12866 0F E5 /rMultiply the packed signed word integers, store the high 16 bits of the results
PMULHUW xmm1, xmm2/m12866 0F E4 /rMultiply packed unsigned word integers, store the high 16 bits of the results
PMULUDQ xmm1, xmm2/m12866 0F F4 /rMultiply packed unsigned doubleword integers
PSLLW xmm1, xmm2/m12866 0F F1 /rShift words left while shifting in 0s
PSLLW xmm1, imm866 0F 71 /6 ibShift words left while shifting in 0s
PSLLD xmm1, xmm2/m12866 0F F2 /rShift doublewords left while shifting in 0s
PSLLD xmm1, imm866 0F 72 /6 ibShift doublewords left while shifting in 0s
PSLLQ xmm1, xmm2/m12866 0F F3 /rShift quadwords left while shifting in 0s
PSLLQ xmm1, imm866 0F 73 /6 ibShift quadwords left while shifting in 0s
PSRAD xmm1, xmm2/m12866 0F E2 /rShift doubleword right while shifting in sign bits
PSRAD xmm1, imm866 0F 72 /4 ibShift doublewords right while shifting in sign bits
PSRAW xmm1, xmm2/m12866 0F E1 /rShift words right while shifting in sign bits
PSRAW xmm1, imm866 0F 71 /4 ibShift words right while shifting in sign bits
PSRLW xmm1, xmm2/m12866 0F D1 /rShift words right while shifting in 0s
PSRLW xmm1, imm866 0F 71 /2 ibShift words right while shifting in 0s
PSRLD xmm1, xmm2/m12866 0F D2 /rShift doublewords right while shifting in 0s
PSRLD xmm1, imm866 0F 72 /2 ibShift doublewords right while shifting in 0s
PSRLQ xmm1, xmm2/m12866 0F D3 /rShift quadwords right while shifting in 0s
PSRLQ xmm1, imm866 0F 73 /2 ibShift quadwords right while shifting in 0s
PSUBB xmm1, xmm2/m12866 0F F8 /rSubtract packed byte integers
PSUBW xmm1, xmm2/m12866 0F F9 /rSubtract packed word integers
PSUBD xmm1, xmm2/m12866 0F FA /rSubtract packed doubleword integers
PSUBQ xmm1, xmm2/m12866 0F FB /rSubtract packed quadword integers.
PSUBSB xmm1, xmm2/m12866 0F E8 /rSubtract packed signed byte integers with saturation
PSUBSW xmm1, xmm2/m12866 0F E9 /rSubtract packed signed word integers with saturation
PMADDWD xmm1, xmm2/m12866 0F F5 /rMultiply the packed word integers, add adjacent doubleword results
PSUBUSB xmm1, xmm2/m12866 0F D8 /rSubtract packed unsigned byte integers with saturation
PSUBUSW xmm1, xmm2/m12866 0F D9 /rSubtract packed unsigned word integers with saturation
PUNPCKHBW xmm1, xmm2/m12866 0F 68 /rUnpack and interleave high-order bytes
PUNPCKHWD xmm1, xmm2/m12866 0F 69 /rUnpack and interleave high-order words
PUNPCKHDQ xmm1, xmm2/m12866 0F 6A /rUnpack and interleave high-order doublewords
PUNPCKLBW xmm1, xmm2/m12866 0F 60 /rInterleave low-order bytes
PUNPCKLWD xmm1, xmm2/m12866 0F 61 /rInterleave low-order words
PUNPCKLDQ xmm1, xmm2/m12866 0F 62 /rInterleave low-order doublewords
PAVGB xmm1, xmm2/m12866 0F E0, /rAverage packed unsigned byte integers with rounding
PAVGW xmm1, xmm2/m12866 0F E3 /rAverage packed unsigned word integers with rounding
PMINUB xmm1, xmm2/m12866 0F DA /rCompare packed unsigned byte integers and store packed minimum values
PMINSW xmm1, xmm2/m12866 0F EA /rCompare packed signed word integers and store packed minimum values
PMAXSW xmm1, xmm2/m12866 0F EE /rCompare packed signed word integers and store maximum packed values
PMAXUB xmm1, xmm2/m12866 0F DE /rCompare packed unsigned byte integers and store packed maximum values
PSADBW xmm1, xmm2/m12866 0F F6 /rComputes the absolute differences of the packed unsigned byte integers; the 8 low differences and 8 high differences are then summed separately to produce two unsigned word integer results
SSE2 integer instructions for SSE registers only

The following instructions can be used only on SSE registers, since by their nature they do not work on MMX registers

Talimatİşlem koduAnlam
MASKMOVDQU xmm1, xmm266 0F F7 /rNon-Temporal Store of Selected Bytes from an XMM Register into Memory
MOVDQ2Q mm, xmmF2 0F D6 /rMove low quadword from XMM to MMX register.
MOVDQA xmm1, xmm2/m12866 0F 6F /rMove aligned double quadword
MOVDQA xmm2/m128, xmm166 0F 7F /rMove aligned double quadword
MOVDQU xmm1, xmm2/m128F3 0F 6F /rMove unaligned double quadword
MOVDQU xmm2/m128, xmm1F3 0F 7F /rMove unaligned double quadword
MOVQ2DQ xmm, mmF3 0F D6 /rMove quadword from MMX register to low quadword of XMM register
MOVNTDQ m128, xmm166 0F E7 /rStore Packed Integers Using Non-Temporal Hint
PSHUFHW xmm1, xmm2/m128, imm8F3 0F 70 /r ibShuffle packed high words.
PSHUFLW xmm1, xmm2/m128, imm8F2 0F 70 /r ibShuffle packed low words.
PSHUFD xmm1, xmm2/m128, imm866 0F 70 /r ibShuffle packed doublewords.
PSLLDQ xmm1, imm866 0F 73 /7 ibPacked shift left logical double quadwords.
PSRLDQ xmm1, imm866 0F 73 /3 ibPacked shift right logical double quadwords.
PUNPCKHQDQ xmm1, xmm2/m12866 0F 6D /rUnpack and interleave high-order quadwords,
PUNPCKLQDQ xmm1, xmm2/m12866 0F 6C /rInterleave low quadwords,

SSE3 Talimatlar

Added with Pentium 4 supporting SSE3

SSE3 SIMD floating-point instructions

Talimatİşlem koduAnlamNotlar
ADDSUBPS xmm1, xmm2/m128F2 0F D0 /rAdd/subtract single-precision floating-point valuesfor Complex Arithmetic
ADDSUBPD xmm1, xmm2/m12866 0F D0 /rAdd/subtract double-precision floating-point values
MOVDDUP xmm1, xmm2/m64F2 0F 12 /rMove double-precision floating-point value and duplicate
MOVSLDUP xmm1, xmm2/m128F3 0F 12 /rMove and duplicate even index single-precision floating-point values
MOVSHDUP xmm1, xmm2/m128F3 0F 16 /rMove and duplicate odd index single-precision floating-point values
HADDPS xmm1, xmm2/m128F2 0F 7C /rHorizontal add packed single-precision floating-point valuesfor Graphics
HADDPD xmm1, xmm2/m12866 0F 7C /rHorizontal add packed double-precision floating-point values
HSUBPS xmm1, xmm2/m128F2 0F 7D /rHorizontal subtract packed single-precision floating-point values
HSUBPD xmm1, xmm2/m12866 0F 7D /rHorizontal subtract packed double-precision floating-point values

SSE3 SIMD integer instructions

Talimatİşlem koduAnlamNotlar
LDDQU xmm1, memF2 0F F0 /rLoad unaligned data and return double quadwordInstructionally equivalent to MOVDQU. For video encoding

SSSE3 Talimatlar

Added with Xeon 5100 series and initial Çekirdek 2

The following MMX-like instructions extended to SSE registers were added with SSSE3

Talimatİşlem koduAnlam
PSIGNB xmm1, xmm2/m12866 0F 38 08 /rNegate/zero/preserve packed byte integers depending on corresponding sign
PSIGNW xmm1, xmm2/m12866 0F 38 09 /rNegate/zero/preserve packed word integers depending on corresponding sign
PSIGND xmm1, xmm2/m12866 0F 38 0A /rNegate/zero/preserve packed doubleword integers depending on corresponding
PSHUFB xmm1, xmm2/m12866 0F 38 00 /rShuffle bytes
PMULHRSW xmm1, xmm2/m12866 0F 38 0B /rMultiply 16-bit signed words, scale and round signed doublewords, pack high 16 bits
PMADDUBSW xmm1, xmm2/m12866 0F 38 04 /rMultiply signed and unsigned bytes, add horizontal pair of signed words, pack saturated signed-words
PHSUBW xmm1, xmm2/m12866 0F 38 05 /rSubtract and pack 16-bit signed integers horizontally
PHSUBSW xmm1, xmm2/m12866 0F 38 07 /rSubtract and pack 16-bit signed integer horizontally with saturation
PHSUBD xmm1, xmm2/m12866 0F 38 06 /rSubtract and pack 32-bit signed integers horizontally
PHADDSW xmm1, xmm2/m12866 0F 38 03 /rAdd and pack 16-bit signed integers horizontally with saturation
PHADDW xmm1, xmm2/m12866 0F 38 01 /rAdd and pack 16-bit integers horizontally
PHADDD xmm1, xmm2/m12866 0F 38 02 /rAdd and pack 32-bit integers horizontally
PALIGNR xmm1, xmm2/m128, imm866 0F 3A 0F /r ibConcatenate destination and source operands, extract byte-aligned result shifted to the right
PABSB xmm1, xmm2/m12866 0F 38 1C /rCompute the absolute value of bytes and store unsigned result
PABSW xmm1, xmm2/m12866 0F 38 1D /rCompute the absolute value of 16-bit integers and store unsigned result
PABSD xmm1, xmm2/m12866 0F 38 1E /rCompute the absolute value of 32-bit integers and store unsigned result

SSE4 Talimatlar

SSE4.1

Added with Çekirdek 2 üretildi 45nm

SSE4.1 SIMD floating-point instructions
Talimatİşlem koduAnlam
DPPS xmm1, xmm2/m128, imm866 0F 3A 40 /r ibSelectively multiply packed SP floating-point values, add and selectively store
DPPD xmm1, xmm2/m128, imm866 0F 3A 41 /r ibSelectively multiply packed DP floating-point values, add and selectively store
BLENDPS xmm1, xmm2/m128, imm866 0F 3A 0C /r ibSelect packed single precision floating-point values from specified mask
BLENDVPS xmm1, xmm2/m128, 66 0F 38 14 /rSelect packed single precision floating-point values from specified mask
BLENDPD xmm1, xmm2/m128, imm866 0F 3A 0D /r ibSelect packed DP-FP values from specified mask
BLENDVPD xmm1, xmm2/m128 , 66 0F 38 15 /rSelect packed DP FP values from specified mask
ROUNDPS xmm1, xmm2/m128, imm866 0F 3A 08 /r ibRound packed single precision floating-point values
ROUNDSS xmm1, xmm2/m32, imm866 0F 3A 0A /r ibRound the low packed single precision floating-point value
ROUNDPD xmm1, xmm2/m128, imm866 0F 3A 09 /r ibRound packed double precision floating-point values
ROUNDSD xmm1, xmm2/m64, imm866 0F 3A 0B /r ibRound the low packed double precision floating-point value
INSERTPS xmm1, xmm2/m32, imm866 0F 3A 21 /r ibInsert a selected single-precision floating-point value at the specified destination element and zero out destination elements
EXTRACTPS reg/m32, xmm1, imm866 0F 3A 17 /r ibExtract one single-precision floating-point value at specified offset and store the result (zero-extended, if applicable)
SSE4.1 SIMD integer instructions
Talimatİşlem koduAnlam
MPSADBW xmm1, xmm2/m128, imm866 0F 3A 42 /r ibSums absolute 8-bit integer difference of adjacent groups of 4 byte integers with starting offset
PHMINPOSUW xmm1, xmm2/m12866 0F 38 41 /rFind the minimum unsigned word
PMULLD xmm1, xmm2/m12866 0F 38 40 /rMultiply the packed dword signed integers and store the low 32 bits
PMULDQ xmm1, xmm2/m12866 0F 38 28 /rMultiply packed signed doubleword integers and store quadword result
PBLENDVB xmm1, xmm2/m128, 66 0F 38 10 /rSelect byte values from specified mask
PBLENDW xmm1, xmm2/m128, imm866 0F 3A 0E /r ibSelect words from specified mask
PMINSB xmm1, xmm2/m12866 0F 38 38 /rCompare packed signed byte integers
PMINUW xmm1, xmm2/m12866 0F 38 3A/rCompare packed unsigned word integers
PMINSD xmm1, xmm2/m12866 0F 38 39 /rCompare packed signed dword integers
PMINUD xmm1, xmm2/m12866 0F 38 3B /rCompare packed unsigned dword integers
PMAXSB xmm1, xmm2/m12866 0F 38 3C /rCompare packed signed byte integers
PMAXUW xmm1, xmm2/m12866 0F 38 3E/rCompare packed unsigned word integers
PMAXSD xmm1, xmm2/m12866 0F 38 3D /rCompare packed signed dword integers
PMAXUD xmm1, xmm2/m12866 0F 38 3F /rCompare packed unsigned dword integers
PINSRB xmm1, r32/m8, imm866 0F 3A 20 /r ibInsert a byte integer value at specified destination element
PINSRD xmm1, r/m32, imm866 0F 3A 22 /r ibInsert a dword integer value at specified destination element
PINSRQ xmm1, r/m64, imm866 REX.W 0F 3A 22 /r ibInsert a qword integer value at specified destination element
PEXTRB reg/m8, xmm2, imm866 0F 3A 14 /r ibExtract a byte integer value at source byte offset, upper bits are zeroed.
PEXTRW reg/m16, xmm, imm866 0F 3A 15 /r ibExtract word and copy to lowest 16 bits, zero-extended
PEXTRD r/m32, xmm2, imm866 0F 3A 16 /r ibExtract a dword integer value at source dword offset
PEXTRQ r/m64, xmm2, imm866 REX.W 0F 3A 16 /r ibExtract a qword integer value at source qword offset
PMOVSXBW xmm1, xmm2/m6466 0f 38 20 /rSign extend 8 packed 8-bit integers to 8 packed 16-bit integers
PMOVZXBW xmm1, xmm2/m6466 0f 38 30 /rZero extend 8 packed 8-bit integers to 8 packed 16-bit integers
PMOVSXBD xmm1, xmm2/m3266 0f 38 21 /rSign extend 4 packed 8-bit integers to 4 packed 32-bit integers
PMOVZXBD xmm1, xmm2/m3266 0f 38 31 /rZero extend 4 packed 8-bit integers to 4 packed 32-bit integers
PMOVSXBQ xmm1, xmm2/m1666 0f 38 22 /rSign extend 2 packed 8-bit integers to 2 packed 64-bit integers
PMOVZXBQ xmm1, xmm2/m1666 0f 38 32 /rZero extend 2 packed 8-bit integers to 2 packed 64-bit integers
PMOVSXWD xmm1, xmm2/m6466 0f 38 23/rSign extend 4 packed 16-bit integers to 4 packed 32-bit integers
PMOVZXWD xmm1, xmm2/m6466 0f 38 33 /rZero extend 4 packed 16-bit integers to 4 packed 32-bit integers
PMOVSXWQ xmm1, xmm2/m3266 0f 38 24 /rSign extend 2 packed 16-bit integers to 2 packed 64-bit integers
PMOVZXWQ xmm1, xmm2/m3266 0f 38 34 /rZero extend 2 packed 16-bit integers to 2 packed 64-bit integers
PMOVSXDQ xmm1, xmm2/m6466 0f 38 25 /rSign extend 2 packed 32-bit integers to 2 packed 64-bit integers
PMOVZXDQ xmm1, xmm2/m6466 0f 38 35 /rZero extend 2 packed 32-bit integers to 2 packed 64-bit integers
PTEST xmm1, xmm2/m12866 0F 38 17 /rSet ZF if AND result is all 0s, set CF if AND NOT result is all 0s
PCMPEQQ xmm1, xmm2/m12866 0F 38 29 /rCompare packed qwords for equality
PACKUSDW xmm1, xmm2/m12866 0F 38 2B /rConvert 2 × 4 packed signed doubleword integers into 8 packed unsigned word integers with saturation
MOVNTDQA xmm1, m12866 0F 38 2A /rMove double quadword using non-temporal hint if WC memory type

SSE4a

Added with Fenom işlemciler

  • EXTRQ / INSERTQ
  • MOVNTSD / MOVNTSS

SSE4.2

İle eklendi Nehalem işlemciler

Talimatİşlem koduAnlam
PCMPESTRI xmm1, xmm2 / m128, imm866 0F 3A 61 / r imm8Dize verilerinin açık uzunluklarla paketlenmiş karşılaştırması, bir dizin oluşturma
PCMPESTRM xmm1, xmm2 / m128, imm866 0F 3A 60 / r imm8Dize verilerinin açık uzunluklarla paketlenmiş karşılaştırması, bir maske oluşturma
PCMPISTRI xmm1, xmm2 / m128, imm866 0F 3A 63 / r imm8Dize verilerinin örtük uzunluklarla paketlenmiş karşılaştırması, bir dizin oluşturma
PCMPISTRM xmm1, xmm2 / m128, imm866 0F 3A 62 / r imm8Dize verilerinin örtük uzunluklarla paketlenmiş karşılaştırması, bir maske oluşturma
PCMPGTQ xmm1, xmm2 / m12866 0F 38 37 / rPaketli imzalı qwords'ü büyüktür için karşılaştırın.

SSE5 türetilmiş talimatlar

SSE5, AMD tarafından önerilen bir SSE uzantısıydı. Paket, Intel'in SSE4 talimatlarının tamamını içermiyordu, bu da onu SSE4'ün halefi olmaktan çok rakibi yapıyor. AMD, SSE5'i başlangıçta önerildiği gibi uygulamamayı seçti, ancak türetilmiş SSE uzantıları tanıtıldı.

XOP

Buldozer işlemci çekirdeği ile tanıtıldı, yeniden Zen (mikro mimari) ileriye.

SSE5 komut setinin çoğunun revizyonu

F16C

Yarı hassas kayan nokta dönüşümü.

TalimatAnlam
VCVTPH2PS xmmreg, xmmrm64Bellekteki dört yarım hassasiyetli kayan nokta değerini veya bir XMM kaydının alt yarısını bir XMM kaydındaki dört tek duyarlıklı kayan nokta değerine dönüştürün
VCVTPH2PS ymmreg, xmmrm128Hafızadaki veya bir XMM kaydındaki (YMM kaydının alt yarısı) sekiz yarım hassasiyetli kayan nokta değerini bir YMM kaydındaki sekiz tek hassasiyetli kayan nokta değerine dönüştürün
VCVTPS2PH xmmrm64, xmmreg, imm8Bir XMM yazmacındaki dört tek duyarlıklı kayan nokta değerini bellekteki yarı duyarlıklı kayan nokta değerlerine veya bir XMM yazmacının alt yarısına dönüştürün
VCVTPS2PH xmmrm128, ymmreg, imm8Bir YMM kaydındaki sekiz tek duyarlıklı kayan nokta değerini, bellekteki veya bir XMM kaydındaki yarı duyarlıklı kayan nokta değerlerine dönüştürün

FMA3

Piledriver mimarisiyle başlayan AMD işlemcilerde ve 2014'ten beri Haswell işlemciler ve Broadwell işlemcilerle başlayan Intel'de desteklenmektedir.

Fused multiply-add (kayan nokta vektörü çarpma – biriktirme) üç işlenen ile.

TalimatAnlam
VFMADD132PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD213PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD231PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD132PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD213PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD231PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADD132SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADD213SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADD231SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADD132SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADD213SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADD231SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADDSUB132PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma Alternatifli Ekleme / Çıkarma
VFMADDSUB213PDPaketlenmiş Çift Hassas Kayan Nokta Değerlerinin Sigortalı Çarpma-Dönüşümlü Ekleme / Çıkarma
VFMADDSUB231PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma Alternatifli Ekleme / Çıkarma
VFMADDSUB132PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpma-Dönüşümlü Ekleme / Çıkarma
VFMADDSUB213PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpma-Dönüşümlü Ekleme / Çıkarma
VFMADDSUB231PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpma-Dönüşümlü Ekleme / Çıkarma
VFMSUB132PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUB213PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUB231PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUB132PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUB213PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFMSUB231PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFMSUB132SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma-Çıkarma
VFMSUB213SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma-Çıkarma
VFMSUB231SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma-Çıkarma
VFMSUB132SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFMSUB213SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFMSUB231SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFMSUBADD132PDSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADD213PDSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADD231PDSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADD132PSSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADD213PSSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADD231PSSigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFNMADD132PDBirleştirilmiş Negatif Çarpım-Paketlenmiş Çift Hassas Kayan Nokta Değerleri Ekleme
VFNMADD213PDBirleştirilmiş Negatif Çarpım-Paketlenmiş Çift Hassas Kayan Nokta Değerleri Ekleme
VFNMADD231PDBirleştirilmiş Negatif Çarpım-Paketlenmiş Çift Hassas Kayan Nokta Değerleri Ekleme
VFNMADD132PSBirleştirilmiş Negatif Çarpma-Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerleri Ekleme
VFNMADD213PSBirleştirilmiş Negatif Çarpım-Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerleri Ekleme
VFNMADD231PSBirleştirilmiş Negatif Çarpım-Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerleri Ekleme
VFNMADD132SDBirleştirilmiş Negatif Çarpım-Skaler Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFNMADD213SDBirleştirilmiş Negatif Çarpım-Skaler Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFNMADD231SDBirleştirilmiş Negatif Çarpım-Skaler Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFNMADD132SSBirleştirilmiş Negatif Çarpma-Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFNMADD213SSBirleştirilmiş Negatif Çarpma-Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFNMADD231SSBirleştirilmiş Negatif Çarpma-Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFNMSUB132PDPaketlenmiş Çift Hassas Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUB213PDPaketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB231PDPaketlenmiş Çift Hassas Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUB132PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB213PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB231PSPaketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB132SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUB213SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUB231SDSkaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUB132SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB213SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUB231SSSkaler Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması

FMA4

Buldozer mimarisinden başlayarak AMD işlemcilerde desteklenir. 2017 itibarıyla hiçbir intel çipi tarafından desteklenmemektedir.

Fused multiply-add dört işlenen ile. FMA4, FMA3'ten önce donanımda gerçekleştirildi.

Talimatİşlem koduAnlamNotlar
VFMADDPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 69 / r / is4Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADDPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 68 / r / is4Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çoklu Eklenmesi
VFMADDSD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6B / r / is4Skaler Çift Duyarlı Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADDSS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6A / r / is4Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı Eklenmesi
VFMADDSUBPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 5D / r / is4Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma Alternatifli Ekleme / Çıkarma
VFMADDSUBPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 5C / r / is4Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpma-Dönüşümlü Ekleme / Çıkarma
VFMSUBADDPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 5F / r / is4Sigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFMSUBADDPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 5E / r / is4Sigortalı Çarpma-Dönüşümlü Çıkarma / Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFMSUBPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6D / r / is4Paketlenmiş Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUBPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6C / r / is4Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Çarpımı-Çıkarılması
VFMSUBSD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6F / r / is4Skaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Çarpma-Çıkarma
VFMSUBSS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 6E / r / is4Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Kaynaştırılmış Çarpımı-Çıkarılması
VFNMADDPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 79 / r / is4Birleştirilmiş Negatif Çarpım-Paketlenmiş Çift Hassas Kayan Nokta Değerleri Ekleme
VFNMADDPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 78 / r / is4Birleştirilmiş Negatif Çarpım-Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerleri Ekleme
VFNMADDSD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7B / r / is4Birleştirilmiş Negatif Çarpım-Skaler Çift Duyarlı Kayan Nokta Değerlerinin Eklenmesi
VFNMADDSS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7A / r / is4Birleştirilmiş Negatif Çarpma-Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Eklenmesi
VFNMSUBPD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7D / r / is4Paketlenmiş Çift Hassas Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUBPS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7C / r / is4Paketlenmiş Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması
VFNMSUBSD xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7F / r / is4Skaler Çift Duyarlı Kayan Nokta Değerlerinin Sigortalı Negatif Çarpma-Çıkarma
VFNMSUBSS xmm0, xmm1, xmm2, xmm3C4E3 WvvvvL01 7E / r / is4Skaler Tek Hassasiyetli Kayan Nokta Değerlerinin Sigortalı Negatif Çarpımı-Çıkarılması

AVX

AVX ilk olarak Intel tarafından Sandy Bridge ile ve AMD tarafından Buldozer.

256 bit yazmaçlarda vektör işlemleri.

TalimatAçıklama
VBROADCASTS32 bit, 64 bit veya 128 bit bellek işlenenini XMM veya YMM vektör kaydının tüm öğelerine kopyalayın.
VBROADCASTSD
VBROADCASTF128
VINSERTF128256 bitlik YMM kaydının alt yarısını veya üst yarısını 128 bitlik kaynak işlenen değeriyle değiştirir. Hedefin diğer yarısı değişmez.
VEXTRACTF128256 bitlik bir YMM kaydının alt yarısını veya üst yarısını çıkarır ve değeri 128 bitlik bir hedef işlenenine kopyalar.
VMASKMOVPSBir SIMD vektör bellek işleneninden herhangi bir sayıda elemanı koşullu olarak bir hedef yazmacına okur, kalan vektör elemanlarını okunmamış halde bırakır ve varış kütüğündeki karşılık gelen elemanları sıfıra ayarlar. Alternatif olarak, bir SIMD vektör yazmaç işleneninden herhangi bir sayıda elemanı koşullu olarak bir vektör bellek işlenenine yazar ve bellek işleneninin kalan elemanlarını değiştirmeden bırakır. AMD Jaguar işlemci mimarisinde, bellek kaynağı işleneni olan bu talimat, maske sıfır olduğunda 300'den fazla saat döngüsü alır ve bu durumda talimat hiçbir şey yapmamalıdır. Bu bir tasarım kusuru gibi görünüyor.[12]
VMASKMOVPD
VPERMILPSPermute In-Lane. Bir giriş işleneninin 32-bit veya 64-bit vektör elemanlarını karıştırın. Bunlar şerit içi 256-bit talimatlardır, yani iki ayrı 128-bit karıştırmayla tüm 256 bit üzerinde çalışırlar, böylece 128-bit şeritlerde karıştırılamazlar.[13]
VPERMILPD
VPERM2F128İki 256-bit kaynak işleneninin dört 128-bit vektör elemanını seçici olarak anlık bir sabitle 256-bit hedef işlenene karıştırın.
VZEROALLTüm YMM kayıtlarını sıfıra ayarlayın ve kullanılmamış olarak etiketleyin. 128 bit kullanım ve 256 bit kullanım arasında geçiş yaparken kullanılır.
VZEROUPPERTüm YMM kayıtlarının üst yarısını sıfıra ayarlayın. 128 bit kullanım ve 256 bit kullanım arasında geçiş yaparken kullanılır.

AVX2

Intel’de tanıtıldı Haswell mikromimarisi ve AMD'ler Ekskavatör.

Çoğu vektör tamsayı SSE ve AVX talimatının 256 bit'e genişletilmesi

TalimatAçıklama
VBROADCASTS32-bit veya 64-bit yazmaç işlenenini XMM veya YMM vektör yazmacının tüm elemanlarına kopyalayın. Bunlar, AVX1'deki aynı talimatların kayıtlı sürümleridir. Ancak 128 bitlik bir sürüm yoktur, ancak aynı etki VINSERTF128 kullanılarak kolayca elde edilebilir.
VBROADCASTSD
VPBROADCASTB8, 16, 32 veya 64 bitlik bir tamsayı kaydını veya bellek işleneni bir XMM veya YMM vektör kaydının tüm öğelerine kopyalayın.
VPBROADCASTW
VPBROADCASTD
VPBROADCASTQ
VBROADCASTI128128 bitlik bir bellek işleneni bir YMM vektör kaydının tüm öğelerine kopyalayın.
VINSERTI128256 bitlik bir YMM kaydının alt yarısını veya üst yarısını 128 bitlik kaynak işlenenin değeriyle değiştirir. Hedefin diğer yarısı değişmez.
VEXTRACTI128256 bitlik bir YMM kaydının alt yarısını veya üst yarısını çıkarır ve değeri 128 bitlik bir hedef işlenenine kopyalar.
VGATHERDPDToplar 32 veya 64 bitlik indeksler ve ölçek kullanarak tek veya çift duyarlıklı kayan nokta değerleri.
VGATHERQPD
VGATHERDPS
VGATHERQPS
VPGATHERDD32 veya 64 bitlik indeksler ve ölçek kullanarak 32 veya 64 bit tam sayı değerleri toplar.
VPGATHERDQ
VPGATHERQD
VPGATHERQQ
VPMASKMOVDBir SIMD vektör bellek işleneninden herhangi bir sayıda elemanı koşullu olarak bir hedef yazmacına okur, kalan vektör elemanlarını okunmamış halde bırakır ve varış kütüğündeki karşılık gelen elemanları sıfıra ayarlar. Alternatif olarak, bir SIMD vektör yazmaç işleneninden herhangi bir sayıda elemanı koşullu olarak bir vektör bellek işlenenine yazar ve bellek işleneninin kalan elemanlarını değiştirmeden bırakır.
VPMASKMOVQ
VPERMPSBir 256-bit kaynak işlenenin sekiz 32-bit vektör elemanını, seçici olarak bir yazmaç veya bellek işleneni ile 256-bitlik bir hedef işlenen halinde karıştırın.
VPERMD
VPERMPDBir 256-bit kaynak işlenenin dört 64-bit vektör elemanını, seçici olarak bir yazmaç veya bellek işleneni ile 256-bit hedef işlenene karıştırın.
VPERMQ
VPERM2I128Karıştır (ikisi) dört 128 bit vektör öğesini iki 256-bit kaynak, seçici olarak anlık bir sabitle, 256-bitlik bir hedef işlenene işlenir.
VPBLENDDPBLEND talimatlarının Doubleword anlık versiyonu SSE4.
VPSLLVDMantıksal sola kaydır. Her bir elemanın paketlenmiş girdiye göre kaydırıldığı değişken kaydırmalara izin verir.
VPSLLVQ
VPSRLVDMantıksal sağa kaydır. Her bir elemanın paketlenmiş girdiye göre kaydırıldığı değişken kaydırmalara izin verir.
VPSRLVQ
VPSRAVDAritmetik olarak sağa kaydır. Her bir elemanın paketlenmiş girdiye göre kaydırıldığı değişken kaydırmalara izin verir.

AVX-512

Intel’de tanıtıldı Xeon Phi x200

512 bitlik yazmaçlarda vektör işlemleri.

AVX-512 temeli

TalimatAçıklama
VBLENDMPDOpmask kontrolü kullanarak float64 vektörleri karıştırın
VBLENDMPSOpmask kontrolünü kullanarak float32 vektörlerini karıştırın
VPBLENDMDOpmask kontrolünü kullanarak int32 vektörlerini karıştırın
VPBLENDMQOpmask kontrolü kullanarak int64 vektörlerini karıştırın
VPCMPDİmzalı / imzasız çift sözcükleri maskeyle karşılaştırın
VPCMPUD
VPCMPQİmzalı / imzasız dörtlü sözcükleri maskeyle karşılaştırın
VPCMPUQ
VPTESTMDMantıksal AND ve maskeyi 32 veya 64 bit tam sayılar için ayarlayın.
VPTESTMQ
VPTESTNMDMantıksal NAND ve maskeyi 32 veya 64 bit tam sayılar için ayarlayın.
VPTESTNMQ
VCOMPRESSPDSeyrek paketlenmiş çift / tek duyarlıklı kayan nokta değerlerini yoğun belleğe kaydedin
VCOMPRESSPS
VPCOMPRESSDSeyrek paketlenmiş çift kelime / dört kelime tamsayı değerlerini yoğun bellek / kayıtta saklayın
VPCOMPRESSQ
VEXPANDPDYoğun bellekten seyrek paketlenmiş çift / tek duyarlıklı kayan nokta değerleri yükleyin
VEXPANDPS
VPEXPANDDYoğun bellek / kayıttan seyrek paketlenmiş çift kelime / dört kelime tamsayı değerleri yükleyin
VPEXPANDQ
VPERMI2PDTam tek / çift kayan nokta, dizinin üzerine yazılmasına izin verir.
VPERMI2PS
VPERMI2DTam çift kelime / dört kelime, dizinin üzerine yazma izni.
VPERMI2Q
VPERMT2PSTam tek / çift kayan nokta, ilk kaynağın üzerine yazılmasına izin verir.
VPERMT2PD
VPERMT2Dİlk kaynağın üzerine tam çift kelime / dört kelime permütasyonu.
VPERMT2Q
VSHUFF32x4Dört paketlenmiş 128 bit satırı karıştırın.
VSHUFF64x2
VSHUFFI32x4
VSHUFFI64x2
VPTERNLOGDBitsel Üçlü Mantık
VPTERNLOGQ
VPMOVQDDört kelimeyi veya çift kelimeyi çift kelimeye, kelimeye veya bayta dönüştürün; doymamış, doymuş veya doymuş işaretsiz. İşaret / sıfır genişletme talimatlarının tersi SSE4.1.
VPMOVSQD
VPMOVUSQD
VPMOVQW
VPMOVSQW
VPMOVUSQW
VPMOVQB
VPMOVSQB
VPMOVUSQB
VPMOVDW
VPMOVSDW
VPMOVUSDW
VPMOVDB
VPMOVSDB
VPMOVUSDB
VCVTPS2UDQKesintisiz veya kesmesiz, paketlenmiş tek veya çift hassasiyetli kayan noktayı paket işaretsiz çift kelimeli tam sayılara dönüştürün.
VCVTPD2UDQ
VCVTTPS2UDQ
VCVTTPD2UDQ
VCVTSS2USITrunction ile veya olmadan, skaler tek veya çift duyarlıklı kayan noktayı işaretsiz çift kelimeli tam sayıya dönüştürün.
VCVTSD2USI
VCVTTSS2USI
VCVTTSD2USI
VCVTUDQ2PSPaket işaretsiz çift kelimeli tam sayıları paketlenmiş tek veya çift hassasiyetli kayan noktaya dönüştürün.
VCVTUDQ2PD
VCVTUSI2PSSkaler işaretsiz çift kelimeli tam sayıları tek veya çift duyarlıklı kayan noktaya dönüştürün.
VCVTUSI2PD
VCVTUSI2SDSkaler işaretsiz tam sayıları tek veya çift duyarlıklı kayan noktaya dönüştürün.
VCVTUSI2SS
VCVTQQ2PDPaketlenmiş dörtlü tam sayıları paketlenmiş tek veya çift hassasiyetli kayan noktaya dönüştürün.
VCVTQQ2PS
VGETEXPPDPaketlenmiş fp değerlerinin üslerini fp değerlerine dönüştür
VGETEXPPS
VGETEXPSDDönüştürmek üs skaler fp değerinin fp değerine
VGETEXPSS
VGETMANTPDFloat32 / float64 vektöründen normalleştirilmiş mantislerin vektörünü ayıklayın
VGETMANTPS
VGETMANTSDNormalleştirilmiş float32 / float64'ü ayıkla mantis float32 / float64 skalerden
VGETMANTS
VFIXUPIMMPDÖzel paketlenmiş float32 / float64 değerlerini düzeltin
VFIXUPIMMPS
VFIXUPIMMSDÖzel skaler float32 / float64 değerini düzeltin
VFIXUPIMMSS
VRCP14PDPaketlenmiş float32 / float64 değerlerinin yaklaşık karşıtlarını hesaplayın
VRCP14PS
VRCP14SDSkaler float32 / float64 değerinin yaklaşık karşıtlarını hesaplayın
VRCP14SS
VRNDSCALEPSVerilen sayıda kesir biti içeren yuvarlak paketlenmiş float32 / float64 değerleri
VRNDSCALEPD
VRNDSCALESSVerilen sayıda kesir biti içerecek yuvarlama skaler float32 / float64 değeri
VRNDSCALESD
VRSQRT14PDPaketlenmiş float32 / float64 değerlerinin kare köklerinin yaklaşık karşıtlarını hesaplayın
VRSQRT14PS
VRSQRT14SDSkaler float32 / float64 değerinin karekökünün yaklaşık karşılığını hesaplayın
VRSQRT14SS
VSCALEFPSFloat32 / float64 değerleri ile paketlenmiş float32 / float64 değerlerini ölçeklendirin
VSCALEFPD
VSCALEFSSkaler float32 / float64 değerini float32 / float64 değeriyle ölçekleyin
VSCALEFSD
VALIGNDÇift kelime veya dört kelime vektörlerini hizalayın
VALIGNQ
VPABSQPaketlenmiş mutlak değer dörtlü sözcüğü
VPMAXSQMaksimum paketlenmiş imzalı / işaretsiz dört kelime
VPMAXUQ
VPMINSQMinimum paketlenmiş imzalı / imzasız dört kelime
VPMINUQ
VPROLDBit sola veya sağa döndürür
VPROLVD
VPROLQ
VPROLVQ
VPRORD
VPRORVD
VPRORQ
VPRORVQ
VPSCATTERDDİmzalı çift kelime ve dört kelime indeksleri ile paketlenmiş çift kelime / dört kelime
VPSCATTERDQ
VPSCATTERQD
VPSCATTERQQ
VSCATTERDPSİmzalı doubleword ve quadword indisleri ile paketlenmiş float32 / float64 dağıtın
VSCATTERDPD
VSCATTERQPS
VSCATTERQPD

Şifreleme talimatları

Intel AES talimatları

6 yeni talimat.

TalimatAçıklama
AESENCBir tur gerçekleştirin AES şifreleme akışı
AESENCLASTAES şifreleme akışının son turunu gerçekleştirin
AESDECAES şifre çözme akışının bir turunu gerçekleştirin
AESDECLASTAES şifre çözme akışının son turunu gerçekleştirin
AESKEYGENASSISTAES yuvarlak anahtar oluşturmada yardım
AESIMCAES Ters Karışım Sütunlarında Yardımcı

RDRAND ve RDSEED

TalimatAçıklama
RDRANDRastgele Sayıyı Oku
RDSEEDRastgele Çekirdeği Oku

Intel SHA talimatları

7 yeni talimat.

TalimatAçıklama
SHA1RNDS4SHA1 Operasyonunun Dört Turunu Gerçekleştirin
SHA1NEXTEDört Turdan Sonra SHA1 Durum Değişkeni E'yi Hesaplayın
SHA1MSG1Sonraki Dört SHA1 Mesajı Dwords için Ara Hesaplama Yapın
SHA1MSG2Sonraki Dört SHA1 Mesaj Dwords için Son Hesaplama Yapın
SHA256RNDS2SHA256 Operasyonunun İki Turunu Gerçekleştirin
SHA256MSG1Sonraki Dört SHA256 Mesaj Dwords için Ara Hesaplama Yapın
SHA256MSG2Sonraki Dört SHA256 Mesaj Dwords için Son Hesaplama Yapın

Belgelenmemiş talimatlar

Belgelenmemiş x86 talimatları

X86 CPU'lar şunları içerir: belgelenmemiş talimatlar Çiplere uygulanmış ancak bazı resmi belgelerde listelenmemiş. İnternet üzerindeki çeşitli kaynaklarda bulunabilirler. Ralf Brown'ın Kesinti Listesi ve sandpile.org

Anımsatıcıİşlem koduAçıklamaDurum
AAM imm8D4 imm8AL'yi imm8'e bölün, bölümü AH'ye ve kalanı AL'ye koyun8086'dan başlayarak kullanılabilir, Pentium'dan beri belgelenmiştir (önceki belgeler hiçbir argüman içermemektedir)
AAD imm8D5 imm8AAM'nin çarpma karşılığı8086'dan başlayarak kullanılabilir, Pentium'dan beri belgelenmiştir (önceki belgeler hiçbir argüman içermemektedir)
TUZD6Taşıma Bayrağının değerine bağlı olarak AL'yi ayarlayın (SBB AL, AL'nin 1 baytlık bir alternatifi)8086'dan itibaren mevcuttur, ancak yalnızca Pentium Pro'dan beri belgelenmiştir.
ICEBPF1Tek baytlık tek adımlı istisna / Çağır BUZPentium Pro'dan beri belgelenen (INT1 olarak) 80386'dan itibaren mevcuttur
Bilinmeyen anımsatıcı0F 04Kesin amaç bilinmiyor, CPU'nun askıda kalmasına neden oluyor (HCF ). Tek çıkış yolu CPU sıfırlamadır.[14]

Bazı uygulamalarda, BIOS olarak durma sıra.[15]

İçinde Vintage Computing Federation'da bir forum gönderisi, bu talimat SAVEALL olarak açıklanmıştır. ICE modu ile etkileşime girer.

Yalnızca 80286'da mevcuttur
HEPSİNİ YÜKLE0F 050x000800H Bellek Adresinden Tüm Kayıtları YüklerYalnızca 80286'da mevcuttur
LOADALLD0F 07Tüm Kayıtları Hafıza Adresinden Yükler ES: EDIYalnızca 80386'da mevcuttur
UD10F B9Kasıtlı olarak tanımlanmamış talimat, ancak UD2'den farklı olarak bu yayınlanmadı
ALTINST0F 3FBelgelenmemiş olarak talimatları atlayın ve uygulayın Alternatif Komut Seti.Yalnızca bazı x86 işlemcilerde mevcuttur. VIA Teknolojileri.

Belgelenmemiş x87 talimatları

FFREEP, FFREE ST (i) ve pop yığını gerçekleştirir

Ayrıca bakınız

Referanslar

  1. ^ a b "Re: Intel İşlemci Kimliği ve CPUID Talimatı". Alındı 2013-04-21.
  2. ^ Toth, Ervin (1998-03-16). "16 bitlik kayıtlara sahip BSWAP". Arşivlenen orijinal 1999-11-03 tarihinde. Komut, üstteki 16 biti etkilemeden çift kelime yazmacının üst kelimesini aşağı indirir.
  3. ^ Coldwin, Gynvael (2009-12-29). "BSWAP + 66h öneki". Alındı 2018-10-03. dahili (sıfır-) daha küçük (16-bit) bir yazmacın değerini genişletme… bswap'i 32-bitlik bir "00 00 AH AL" değerine uygulama,… "00 00" olan daha düşük 16-bitlere kesilmiş. … Bochs… bswap reg16, bswap reg32 gibi davranır… QEMU… 66h önekini yok sayar
  4. ^ "RSM - Sistem Yönetimi Modundan Devam Et". 2012-03-12 tarihinde orjinalinden arşivlendi.CS1 bakım: BOT: orijinal url durumu bilinmiyor (bağlantı)
  5. ^ Intel 64 ve IA-32 Mimarileri Optimizasyonu Referans Kılavuzu bölüm 7.3.2
  6. ^ Intel 64 ve IA-32 Mimarileri Yazılım Geliştirici Kılavuzu, bölüm 4.3, "PREFETCHh — Verileri Önbelleklere Önceden Getir" alt bölümü
  7. ^ Hollingsworth, Brent. "Yeni" Buldozer "ve" Piledriver "talimatları" (pdf). Advanced Micro Devices, Inc. Alındı 11 Aralık 2014.
  8. ^ "Aile 16h AMD A Serisi Veri Sayfası" (PDF). amd.com. AMD. Ekim 2013. Alındı 2014-01-02.
  9. ^ "AMD64 Mimarisi Programcı Kılavuzu, Cilt 3: Genel Amaçlı ve Sistem Talimatları" (PDF). amd.com. AMD. Ekim 2013. Alındı 2014-01-02.
  10. ^ "GCC 4.8'den tbmintrin.h". Alındı 2014-03-17.
  11. ^ https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf bölüm 3.5.2.3
  12. ^ "Intel, AMD ve VIA CPU'ların mikro mimarisi: Montaj programcıları ve derleyici üreticileri için bir optimizasyon kılavuzu" (PDF). Alındı 17 Ekim 2016.
  13. ^ "Satranç programlama AVX2". Alındı 17 Ekim 2016.
  14. ^ "Re: Belgelenmemiş işlem kodları (HINT_NOP)". Arşivlenen orijinal 2004-11-06 tarihinde. Alındı 2010-11-07.
  15. ^ "Re: Ayrıca bazı belgelenmemiş 0Fh işlem kodları". Arşivlenen orijinal 2003-06-26 tarihinde. Alındı 2010-11-07.

Dış bağlantılar