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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de