Compartilhar via


Tamanhos de tipo e variável em assembly embutido

Seção específica da Microsoft

Os operadores LENGTH, SIZE e TYPE têm um significado limitado no assembly embutido. Eles não podem ser usados com o operador DUP (porque você não pode definir dados com diretivas ou operadores MASM). Mas você pode usá-los para encontrar o tamanho de variáveis ou tipos C ou C++:

  • O operador LENGTH pode retornar o número de elementos em uma matriz. Ele retorna o valor 1 para variáveis não matrizes.

  • O operador SIZE pode retornar o tamanho de uma variável C ou C++. O tamanho de uma variável é o produto do seu LENGTH e TYPE.

  • O operador SIZE pode retornar o tamanho de uma variável C ou C++. Se a variável for uma matriz, TYPE retornará o tamanho de um único elemento da matriz.

Por exemplo, se o programa tiver uma matriz de 8 elementos int,

int arr[8];

as expressões C e assembly a seguir produzem o tamanho de arr e seus elementos.

__asm C Tamanho
LENGTH arr sizeof(arr)/sizeof(arr[0]) 8
SIZE arr sizeof(arr) 32
TYPE arr sizeof(arr[0]) 4

Fim da seção específica da Microsoft

Confira também

Usando a linguagem de assembly em blocos __asm