Aracılığıyla paylaş


__asm Bloklarında İşleçler Kullanma

Microsoft'a Özgü

Blok __asm , işleç gibi C veya C++ özel işleçlerini << kullanamaz. Ancak, C ve MASM tarafından paylaşılan * işleci gibi işleçler, derleme dili işleçleri olarak yorumlanır. Örneğin, bir __asm bloğun dışında köşeli ayraçlar ([ ]), C'nin dizideki bir öğenin boyutuna otomatik olarak ölçeklendirildiği dizi alt indisleri olarak yorumlanır. Bir bloğun içinde, herhangi bir __asm veri nesnesinden veya etiketinden (yalnızca bir diziden değil) ölçeklendirilmemiş bayt uzaklığı veren MASM dizin işleci olarak görülürler. Aşağıdaki kod farkı gösterir:

int array[10];

__asm mov array[6], bx ;  Store BX at array+6 (not scaled)

array[6] = 0;         /* Store 0 at array+24 (scaled) */

için ilk başvuru array ölçeklendirilmemiş, ancak ikincisi ölçeklendirilmemiş. Bir sabite dayalı ölçeklendirme elde etmek için TYPE işlecini kullanabileceğinizi unutmayın. Örneğin, aşağıdaki deyimler eşdeğerdir:

__asm mov array[6 * TYPE int], 0 ; Store 0 at array + 24

array[6] = 0;                   /* Store 0 at array + 24 */

END Microsoft'a Özgü

Ayrıca bkz.

__asm Bloklarında C veya C++ Kullanma