Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sözdizimi
Yönergeler kaynak kodunda şu söz dizimine göre yazılır:
ön ekanımsatıcıişlenen listesi
Yönerge tanımları, seçenekler ve kodlama hakkında bilgi için bkz . İşlemci Üreticisi Programlama El Kitapları. Bazı yönergeler ve yönerge seçenekleri Microsoft Makro Derleyicisi tarafından desteklenmeyebilir.
Önek
Bazı yönergelerin ön ekini, yönergenin nasıl kodlanacağına ilişkin seçenekleri ayarlayan anahtar sözcüklerle belirtebilirsiniz. REP, REPE, , REPZ, REPNEve REPNZ anahtar sözcükleri, tek bir yönergede yapmak veya strlen işlem türlerini yapmak memcpy için dize yönergeleriyle birlikte kullanılır. LOCK anahtar sözcüğü, bellek işlenenleri üzerindeki belirli işlemleri atomik hale getirir. Desteklenen işlemcilerde Hardware Lock Elision (HLE) yapmak için ve XRELEASE anahtar sözcükleriyle XACQUIRE birleştirebilirsiniz ve bu da belirli durumlarda daha fazla işlem paralelliği sağlar.
Kalan ön ekler, AVX yönergelerinin nasıl kodlanmış olduğunu denetler. AVX yönergeleri, opcode'un önünde görünen bir VEX ön ek kullanılarak kodlanır. Belirli bayt yönerge ön eklerinin ve opcode lead-in baytlarının yerini alır. Birçok AVX yönergesi, daha fazla seçeneği destekleyen bir EVEX ön ek kullanılarak kodlanan AVX-512 yönergeleridir. MASM, yönergeleri olabildiğince kısa bir şekilde kodlamaya çalışır, ancak bu anahtar sözcükler belirli bir yönergeyle hangi kodlamanın kullanılacağı üzerinde daha fazla denetim sağlar. Ayrıca, karşılık gelen AVX-512 yönergesi sonrasında tanıtılan AVX yönerge formlarının oluşturulmasını zorlamak için de kullanılır. Örneğin, vex vpdpbusd AVX512-VNNI formu VPDPBUSD yerine yönergelerin AVX-VNNI biçimini belirtir. Açık ön ek anahtar sözcüğü olmadan bir AVX yönergesi görüntülendiğinde, seçilen kodlama geçerli AVX kodlama ayarına bağlıdır. yönergesi OPTION AVXENCODING bu ayarı değiştirmenize olanak tanır.
VEX2, VEX3, VEXve EVEX seçenekleri Visual Studio 2019 sürüm 16.7 ve sonraki sürümlerde kullanılabilir.
| Anahtar sözcük | Kullanım |
|---|---|
REP |
Dize işlemini (E)CX içindeki sayıya göre yineleyin. |
REPEREPZ |
Karşılaştırma eşitken dize işlemini yineleyin, (E)CX içindeki sayı ile sınırlıdır. |
REPNEREPNZ |
Karşılaştırma eşit değilken dize işlemini yineleyin, (E)CX içindeki sayı ile sınırlıdır. |
LOCK |
İşlemi bir bellek işleneninde atomik olarak gerçekleştirin. |
XACQUIRE |
En sık ön ek ile LOCK kullanılan bir HLE işlemi başlatın. |
XRELEASE |
En sık ön ek ile LOCK kullanılan bir HLE işlemini tamamlayın. |
VEX |
Ön ek kullanarak VEX BIR AVX yönergesi kodlama. |
VEX2 |
2 baytlık VEX ön ek kullanarak BIR AVX yönergesi kodlama. |
VEX3 |
3 baytlık VEX ön ek kullanarak BIR AVX yönergesi kodlama. |
EVEX |
Ön ek kullanarak EVEX BIR AVX yönergesi kodlama. |
Anımsatıcı
Anımsatıcı, izin verilen ön ekleri ve işlenen desenlerini belirleyen belirli bir yönergeyi tanımlar.
İşlenen listesi
Yönergelerin çoğu, yönergenin açık kaynak ve hedef işlenenlerini belirtmek için işlenen listesini kullanır. İşlenen listesi bellek başvuruları, yazmaçlar ve sabit değerler içerebilir. Her yönerge, işlenen listesindeki her konumda yalnızca belirli işlenen türlerinin görünmesini sağlar. ve CMPS yönergeleri dışındaMOVS, işlenenlerden yalnızca biri bellek başvurusu olabilir; diğer tüm işlenenler kayıt başvuruları veya sabitleri olmalıdır.
AVX-512 seçenekleri
Bazı AVX-512 yönergeleri daha fazla seçeneğin belirtilmesine olanak sağlar. Bu seçenekler şunlardır: maskeleme, sıfır maskeleme, ekli yayın, ekli yuvarlama ve özel durum gizleme.
Maskeleme , bir işlemin yalnızca bir vektördeki seçili öğelere uygulanmasını sağlar. Bu seçenek, hedef işlenenden {k1} sonraya {k7} bir maske yazmaç yerleştirilerek denetlenilir. Maske yazmaç tarafından takip {z}edilirse, hedefin seçili olmayan tüm öğeleri sıfır olarak ayarlanır. Bu alternatif sıfır maskeleme olarak bilinir.
Embedded Broadcast , bellekteki skaler değerin vektördeki tüm öğelere uygulanmasını sağlar. Bu seçenek, normal bellek başvuruları için kullanımına PTR benzer şekilde bellek işlenenine öğe boyutu ve anahtar sözcüğü BCST eklenerek etkinleştirilir.
Katıştırılmış Yuvarlama , genel yuvarlama modunu ayarlamak ve sıfırlamak zorunda kalmadan tek bir kayan nokta yönergesi için yuvarlama modunu denetler. Yönerge, küme ayraçları içine alınmış yuvarlama moduyla izlenerek etkinleştirilir. Etkinleştirildiğinde, yalnızca bu yönerge için tüm özel durumları da gizler. Yuvarlamayan kayan nokta yönergeleri de benzer bir seçenek kullanarak tüm özel durumları gizleyebilir.
; Examples of AVX-512 options
vaddps xmm1 {k1}, xmm2, xmm3 ; merge-masking
vsubps ymm0 {k4}{z}, ymm1, ymm2 ; zero-masking
vmulps zmm0, zmm1, dword bcst scalar ; embedded broadcast
vdivps zmm0, zmm1, zmm2 {rz-sae} ; embedded rounding
vmaxss xmm1, xmm2, xmm3 {sae} ; suppress all exceptions
Yuvarlama modları
| Mod | Etki |
|---|---|
rn-sae |
En yakına yuvarlanır, çifte bağlanır, tüm özel durumları gizler. |
rz-sae |
Sıfıra doğru yuvarlar, tüm özel durumları gizler. |
rd-sae |
Aşağı yuvarlar (negatif sonsuzluğa doğru), tüm özel durumları gizler. |
ru-sae |
Yukarı yuvarlar (pozitif sonsuzluğa doğru), tüm özel durumları gizler. |
sae |
Tüm özel durumları gizleme (yuvarlama gerekmez). |
Ayrıca bkz.
Microsoft Macro Assembler Başvurusu
İşlemci Üreticisi Programlama Kılavuzları