Ich untersuche, wie c ++ die richtigen Elementfunktionen über die Assemblersprache aufruft. Das einfache Programm, mit dem ich komme, ist das folgende:
%Vor%Die Montage ist wie folgt:
%Vor%meine Fragen sind:
Das *
wird vor absoluten Adressen in AT & amp; T Assembly-Syntax für Aufruf- oder Sprungbefehle verwendet. Dies bedeutet, dass es zu der Adresse springt, die in dem Register enthalten ist. Die Alternative ist ein relativer Sprung, der relativ zur aktuellen Anweisung ist.
Aus dem GNU as
Handbuch :
AT & amp; T absolut (im Gegensatz zu PC relativ) Jump / Call-Operanden haben das Präfix '*'; Sie sind unbegrenzt in Intel-Syntax.
In Ihrem Code ist es sinnvoll, eine Adresse in einem Register anzurufen. Der Aufruf von pA->show()
erfordert ein Nachschlagen, um zu sehen, was die richtige Funktion ist, die aufgerufen werden soll. Dies liegt daran, dass es sich bei der Klasse A um eine virtuelle Funktion handelt.
Tags und Links assembly