Kann mir jemand erklären, wie man Makros in der x86-Assembler-Programmierung verwendet?
Antworten
Zu viele Anzeigen?Das hängt davon ab, welchen Compiler Sie verwenden.
Normalerweise hat ein Assembler-Makro die folgende Form;
begin MyMacro %1, %2
mov eax, %1
add eax, %2
end
Dieser befindet sich im Kopfbereich Ihres Quellcodes und gibt keinen Code aus, es sei denn, er wird referenziert. Sie würden dies mit dem anderen Assembler einbinden.
mov ecx, 88
MyMacro ecx, 12
asr ecx, 3
Die "Parameter" %1 und %2 würden in diesem Fall durch ecx und 12 ersetzt, was zu folgender Ausgabe führt
mov ecx, 88
mov eax, ecx
add eax, 12
asr ecx, 3
Das ist eine sehr weit gefasste Frage. Es gibt zig Möglichkeiten, Makros zu verwenden. Einige Assembler-Entwickler verwenden sie tonnenweise, andere hassen sie.
Eine der häufigsten Möglichkeiten ist die Verwendung von Makros für Funktionsprologe und -epiloge. Eine andere Möglichkeit ist, sie für das Abrufen von Speicherparametern auf dem Stack zu verwenden.