Tamanhos de tipo e variável em assembly embutido
Específico da Microsoft
LENGTH, TAMANHO, e os operadores de TIPO tem um significado limitado no assembly embutido. Não podem ser usados em todas com o operador de DUP (porque você não pode definir dados com políticas ou operadores de MASM). Mas você pode usá-lo para localizar o tamanho de C ou variáveis ou tipos de C++:
O operador de LENGTH pode retornar o número de elementos em uma matriz. Retorna o valor 1 para variáveis de não matriz.
O operador de TAMANHO pode retornar o tamanho atual do da variável c ou C++. O tamanho de uma variável é o produto de seus LENGTH e TIPO.
O operador de TIPO pode retornar o tamanho do tipo c ou C++ ou a variável. Se a variável for uma matriz, TIPO retorna o tamanho de um único elemento da matriz.
Por exemplo, se seu programa tem uma matriz de int de elementos, 8
int arr[8];
as seguintes expressões e C do assembly retorna o tamanho de arr e de seus elementos.
__asm |
C |
Size (Tamanho) |
---|---|---|
Arr deLENGTH |
sizeof() de arr/sizeof(arr [0]) |
8 |
arr deTAMANHO |
sizeof(arr) |
32 |
arr deTIPO |
sizeof(arr [0]) |
4 |
FINALIZAR Específico da Microsoft