.data mem256a dword 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 8.0 mem256b dword 3.0, 5.0, 9.0, 1.0, 5.0, 0.0, 2.0, 4.0 mem512a dword 1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 8.0 dword 3.0, 7.0, 1.0, 2.0, 5.0, 8.0, 0.0, 4.0 mem512b dword 7.0, 9.0, 4.0, 5.0, 8.0, 1.0, 2.0, 9.0 dword 2.0, 1.0, 7.0, 4.0, 3.0, 5.0, 1.0, 11.0 mem256c dword 1, 0, 1, 0, 1, 0, 1, 0 mem256d dword 0, 1, 0, 1, 0, 1, 0, 1 mem512c dword 1, 0, 1, 0, 1, 0, 1, 0 dword 1, 0, 0, 1, 1, 0, 0, 1 mem512d dword 0, 1, 0, 1, 0, 1, 0, 1 dword 1, 0, 0, 1, 1, 0, 0, 1 .code Main proc ;VMOVUPS to rozszerzona wersja rozkazu MOVUPS vmovups ymm1, mem256a ;kopiowanie wektora z pamięci do rejestru YMM1 vmovups ymm2, mem256b ;kopiowanie wektora z pamięci do rejestru YMM2 ;VADDPS to rozszerzona wersja rozkazu ADDPS vaddps ymm0, ymm1, ymm2 ;dodawanie wartości z rejestru YMM2 do YMM1 i zapisanie wyniku w YMM0 vmovups ymm1, mem256a ;kopiowanie wektora z pamięci do rejestru YMM1 vmovups ymm2, mem256b ;kopiowanie wektora z pamięci do rejestru YMM2 ;VSUBPS to rozszerzona wersja rozkazu SUBPS vsubps ymm0, ymm1, ymm2 ;odejmowanie wartości z rejestru YMM2 od YMM1 i zapisanie wyniku w YMM0 vmovups ymm1, mem256a ;kopiowanie wektora z pamięci do rejestru YMM1 vmovups ymm2, mem256b ;kopiowanie wektora z pamięci do rejestru YMM2 ;VXORPS to rozszerzona wersja rozkazu XORPS vxorps ymm0, ymm1, ymm2 ;alternatywa wykluczająca wartości wektorów z rejestru YMM2 i YMM1 oraz zapisanie wyniku w YMM0 mov rdx, offset mem256c ;kopiowanie adresu wektora w pamięci do rejestru RDX vmovdqu ymm2, ymmword ptr [rdx] ;kopiowanie wartości spod adresu w pamięci do rejestru YMM2 mov rdx, offset mem256d ;kopiowanie adresu wektora w pamięci do rejestru RDX vmovdqu ymm3, ymmword ptr [rdx] ;kopiowanie wartości spod adresu w pamięci do rejestru YMM3 ;VPXOR to rozszerzona wersja rozkazu PXOR vpxor ymm1, ymm2, ymm3 ;alternatywa wykluczająca wartości wektorów z rejestru YMM3 i YMM2 oraz zapisanie wyniku w YMM1 ;---------- AVX-512 ----------; vmovups zmm1, mem512a ;kopiowanie wektora z pamięci do rejestru ZMM1 vmovups zmm2, mem512b ;kopiowanie wektora z pamięci do rejestru ZMM2 vaddps zmm0, zmm1, zmm2 ;dodawanie wektorów wartości zmiennoprzecinkowych pojedynczej precyzji (ZMM0 = ZMM1 + ZMM2) vmovups zmm1, mem512a ;kopiowanie wektora z pamięci do rejestru ZMM1 vmovups zmm2, mem256b ;kopiowanie wektora z pamięci do rejestru ZMM2 vsubps zmm0, zmm1, zmm2 ;odejmowanie wartości wektorów zmiennoprzecinkowych pojedynczej precyzji (ZMM0 = ZMM2 - ZMM1) vmovups zmm1, mem512a ;kopiowanie wektora z pamięci do rejestru ZMM1 vmovups zmm2, mem512b ;kopiowanie wektora z pamięci do rejestru ZMM2 vxorps zmm0, zmm1, zmm2 ;alternatywa wykluczająca wektorów wartości zmiennoprzecinkowych pojedynczej precyzji, czyli ZMM0 = ZMM1 xor ZMM2 mov rdx, offset mem512c ;kopiowanie adresu wektora w pamięci do rejestru RDX vmovdqu64 zmm2, zmmword ptr [rdx] ;kopiowanie wartości spod adresu w pamięci do rejestru ZMM2 mov rdx, offset mem512d ;kopiowanie adresu wektora w pamięci do rejestru RDX vmovdqu64 zmm3, zmmword ptr [rdx] ;kopiowanie wartości spod adresu w pamięci do rejestru ZMM3 vpxord zmm1, zmm2, zmm3 ;alternatywa wykluczająca wektorów podwójnych słów (wartości całkowite), czyli ZMM1 = ZMM2 xor ZMM3 ;(...) ret Main endp end