kürzester Weg, um einen Abruf in X86 Assembler zu machen?
Frage
Was ist der kürzeste Weg, um einen Wert aus dem Speicher in X86 Assembler zu holen?
Lösung
Sie meinen anderen als MOV -Register, [Adresse]?
Andere Tipps
Es gibt keine Problemumgehung im Assembler Haw, um dies zu tun. Alle Anweisungen des Assemblers sind streng engagiert.
mov AL, 0x12
Laden Sie den Wert 0x12 sofort, um sich zu registrieren
xor AL,AL
Das Ergebnis des Betriebs im Al -Register beträgt 0
lodsb
lädt Byte aus DS: [ESI] (oder DS: [si] unter 16 Bit CPU) Speicheradresse an AL
mov AL,[ESI]
lädt Byte aus DS: [ESI] (oder DS: [si] unter 16 Bit CPU) Speicheradresse an AL
mov AL,[0xFFFF]
lädt Byte von DS: [0xffff] Speicheradresse an AL
pop AX
lädt Byte von SS: [esp] (oder SS: [sp] unter 16 Bit CPU) Speicheradresse an AL
in AL, 0x123
Laden Sie Byte von der Portadresse 0x123
xlatb [EBX + AL]
Laden Sie Byte aus DS: [EBX + Al] Speicheradresse
...
Ok, der kürzeste Weg ist, Register zu popieren, wie pop eax
, Es ist eine Byteanweisung.
Dies kann jedoch nur in besonderen Fällen verwendet werden, bei denen der Stapelzeiger ESP auf einen Puffer verweist.
Und wahrscheinlich werden Sie den Stapel nicht für einen anderen Zweck verwenden, bis der Code, der ihn verwendet, erledigt ist.
Der Standardweg besteht darin, die zu verwenden mov
Anweisung.