OpCodes.Ldind_U1 Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Carrega um valor do tipo unsigned int8
como um int32
na pilha de avaliação indiretamente.
public: static initonly System::Reflection::Emit::OpCode Ldind_U1;
public static readonly System.Reflection.Emit.OpCode Ldind_U1;
staticval mutable Ldind_U1 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_U1 As OpCode
Valor do campo
Comentários
A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:
Formatar | Formato de assembly | Descrição |
---|---|---|
47 | ldind.u1 | Carrega o unsigned int8 valor no endereço addr na pilha como um int32 . |
O comportamento de transição da pilha, em ordem sequencial, é:
Um endereço é enviado por push para a pilha.
O endereço é exibido da pilha; o valor localizado no endereço é buscado.
O valor buscado é enviado por push para a pilha.
A ldind.u1
instrução carrega indiretamente um unsigned int8
valor do endereço especificado (do tiponative int
, &
ou *) na pilha como um int32
.
Todas as ldind
instruções são atalhos para uma Ldobj instrução que especifica a classe de valor interna correspondente.
Observe que os valores inteiros de menos de 4 bytes são estendidos para int32
(não native int
) quando são carregados na pilha de avaliação. Os valores de ponto flutuante são convertidos em F
tipo quando carregados na pilha de avaliação.
A MSIL (Linguagem Intermediária da Microsoft) formada corretamente garante que as ldind
instruções sejam usadas de maneira consistente com o tipo do ponteiro.
O endereço inicialmente enviado para a pilha deve ser alinhado ao tamanho natural dos objetos no computador ou um NullReferenceException pode ocorrer (consulte a Unaligned instrução de prefixo para medidas preventivas). Os resultados de todas as instruções MSIL que retornam endereços (por exemplo, Ldloca e Ldarga) são alinhados com segurança. Para tipos de dados maiores que 1 byte, a ordenação de bytes depende da CPU de destino. O código que depende da ordenação de bytes pode não ser executado em todas as plataformas.
NullReferenceException pode ser gerado se um endereço inválido for detectado.
A sobrecarga do método Emit a seguir pode usar o ldind.u1
opcode: