Instrucțiunea PMOVMSKB (Packed Move Mask Bytes) extrage cel mai semnificativ bit (bitul de semn) din fiecare dintre cei 16 octeți ai registrului XMM și îi împachetează într-un număr întreg pe 16 biți în registrul destinație cu utilizare generală.
; Verifică dacă oricare dintre cei 16 octeți a fost potrivit de pcmpeqb:
pcmpeqb xmm0, xmm1 ; Octeții potriviți au bitul 7 setat pe 1 (0xFF)
pmovmskb eax, xmm0 ; EAX conține o mască de 16 biți (fiecare bit reflectă un octet)
test eax, eax ; Este masca diferită de zero?
jnz caracter_gasit ; Dacă da, am găsit cel puțin o potrivire!
; Poziția primului caracter potrivit se determină instant cu instrucțiunea BSF (Bit Scan Forward):
bsf ecx, eax ; ECX conține indexul exact (0..15) al primului caracter potrivit
Performanță extremă: Acesta este nucleul algoritmilor utilizați de bibliotecile ultra-rapide memchr, simdjson și motoarele de baze de date analitice.
Întrebări & Exemple de Cod:
PMOVMSKB în x86_64: Extragerea Măștilor de Biți din Vectori SIMDAi o nelămurire despre utilizarea comenzii
PMOVMSKB în x86_64: Extragerea Măștilor de Biți din Vectori SIMDsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.