OpCodes.Ldind_R8 Pole
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte hodnotu typu float64
jako typ F
(float) do zásobníku vyhodnocení nepřímo.
public: static initonly System::Reflection::Emit::OpCode Ldind_R8;
public static readonly System.Reflection.Emit.OpCode Ldind_R8;
staticval mutable Ldind_R8 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_R8 As OpCode
Hodnota pole
Poznámky
Následující tabulka uvádí hexadecimální formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným souhrnem referenčních informací:
Formát | Formát sestavení | Description |
---|---|---|
4F | ldind.r8 | Načte float64 hodnotu adresy addr do zásobníku jako typ F . |
Přechodné chování zásobníku v sekvenčním pořadí je:
Adresa se nasdílí do zásobníku.
Adresa je vyskočila ze zásobníku; hodnota umístěná na adrese se načte.
Načtená hodnota se nasdílí do zásobníku.
Instrukce ldind.r8
nepřímo načte float64
hodnotu ze zadané adresy (typu native int
, &
nebo *) do zásobníku jako float64
.
ldind
Všechny pokyny jsou zkratky pro Ldobj instrukce, která určuje odpovídající předdefinované hodnotové třídy.
Všimněte si, že celočíselné hodnoty menší než 4 bajty se při načtení do zásobníku vyhodnocení rozšíří na int32
(ne native int
). Při načtení do zkušebního zásobníku se hodnoty s plovoucí desetinou čárkou převedou F
na typ.
Správně vytvořený jazyk MSIL (Microsoft Intermediate Language) zajišťuje, aby ldind
se pokyny používaly způsobem konzistentním s typem ukazatele.
Adresa, která se původně nasdílí do zásobníku, musí být zarovnaná s přirozenou NullReferenceException velikostí objektů na počítači, jinak může dojít k chybě (viz Unaligned instrukce k předponě pro preventivní opatření). Výsledky všech instrukcí jazyka MSIL, Ldloca které vrací adresy (například a Ldarga), jsou bezpečně zarovnané. U datových typů větších než 1 bajt závisí pořadí bajtů na cílovém procesoru. Kód, který závisí na pořadí bajtů, nemusí běžet na všech platformách.
NullReferenceException může být vyvolána, pokud je zjištěna neplatná adresa.
Následující Emit přetížení metody může použít ldind.r8
opcode: