section .data const40 'MMMMMMMMMMMMMMMM' star '****************' section .text ; if(x <= 'M') x = '*'; sse_if: movdqu xmm0, [rdi] ; MOVe Double Quadword [Aligned] movdqu xmm1, [const40] ; wektor stałych 40 movdqa xmm2, xmm0 ; pcmpgtb xmm2, xmm1 ; xmm2 zawiera maske movdqa xmm1, [star] pand xmm0, xmm2 ; zerujemy znaki mniejsze niż M pandn xmm2, xmm1 ; ustawiamy tam gwiazdki por xmm0, xmm2 ; sumujemy movdqu [rdi], xmm0 ret
Przykład