Struktury i C++
C++: kodowanie nazw funkcji
// Funkcja 
 
void f();
void f(int x);
void f(double x);
void f(int * x);
double f(int x, double y);
double f(int (*fun)(int), int);
void Klasa::f(int i, double t);
static void Klasa::f(int i);
; Nazwa
 
_Z1fv
_Z1fi
_Z1fd
_Z1fPi
_Z1fid
_Z1fPFiiEi
_ZN5Klasa1fEid
_ZN5Klasa1fEi

Nazwa jest zależna od systemu, kompilatora. Reguły są dość skomplikowane.

Zamiast zgadywać nazwę można zobaczyć jaką nazwę używa kompilator.

g++ -S plik.cpp -o plik.asm
Powyższa komenda przetłumaczy plik C++ na plik asemblerowy w formacie GAS.

Jeżeli chcemy format bardziej podobny do NASMa to należy dodać opcję -masm=intel.

g++ -masm=intel -S plik.cpp -o plik.asm

Tomasz Kapela, Kraków 2011-2020