Przekazanie wartości wyniku z procedury napisanej w assemblerze do procedury wysokiego poziomu
W niektórych przypadkach może istnieć potrzeba przekazania wartości wyniku działania procedury napisanej w języku assemblera do procedury napisanej w języku wysokiego poziomu. Przykładem mogą być tu procedury assemblerowe, które czytają wartość rejestrów specjalnych procesora.
Aby procedura napisana w assemblerze mogła przekazać wynik do procedury napisanej w C należy ją najpierw odpowiednio zdefiniować w pliku nagłówkowym:
Dzięki temu taką procedurę można wywoływać w standardowy sposób, tak jak zwykłą procedurę zwracającą wartość, ale napisaną w języku C.
Aby przekazać wynik do procedury napisanej w C, należy po prostu jego wartość umieścić w rejestrze EAX procesora. Jeżeli jednak wynik jest większy od słowa maszynowego procesora, to rejestr EAX zawiera wskaźnik na określoną w definicji strukturę (znajdującą się na stosie).
Przekazanie wartości z procedury napisanej w C do procedury napisanej w języku assemblera odbywa się stosunkowo rzadko, a jej mechanizm jest analogiczny do poprzedniego.