Funktionsaufrufe

This commit is contained in:
Marco Ammon 2020-06-25 16:18:42 +02:00
parent 776ca4c931
commit 4d40b32a1b
2 changed files with 26 additions and 0 deletions

Binary file not shown.

View File

@ -86,6 +86,32 @@
\end{itemize} \end{itemize}
\end{itemize} \end{itemize}
\section{Funktionsaufrufe}
\begin{enumerate}
\item Vorbereitung: \begin{enumerate}
\item Argumentauswertung gemäß Übergabemechanismus
\item Sichern von Caller-Save-Registern auf dem Stack
\item Argumente in Registern/auf dem Stack ablegen
\item Funktionsaufruf
\end{enumerate}
\item Prolog: \begin{enumerate}
\item Sichern des alten FP und Allokation des Stackframes
\item Sichern von Callee-Save-Registern im Stackframe
\end{enumerate}
\item Funktionsrumpf
\item Epilog: \begin{enumerate}
\item Ablage des Rückgabewerts in Register/auf dem Stack
\item Restauration von Callee-Save-Registern
\item Freigabe des Stackframes und Restauration des FP
\item Rückkehr
\end{enumerate}
\item Nachbereitung: \begin{enumerate}
\item Abspeichern des Ergebnis an vorgesehener Stelle
\item Entfernen der Argumente vom Stack
\item Restauration der Caller-Save-Register
\end{enumerate}
\end{enumerate}
\section{Geschachtelte Funktionen} \section{Geschachtelte Funktionen}
\begin{itemize} \begin{itemize}
\item ohne Display: \begin{itemize} \item ohne Display: \begin{itemize}