aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2019-12-14 11:19:39 +0100
committerCamil Staps2019-12-14 11:19:39 +0100
commit71fdadc8588d480c5e33d33f77dff30165292ad8 (patch)
tree77d5bbc96a933f6a463a58a425c0ad1a98576ca7
parentRemove CI badge from readme (now as gitlab project badge) (diff)
Add cheat sheets for x86 windows
-rw-r--r--cdecl-contents.tex8
-rw-r--r--cdecl.tex5
-rw-r--r--linux-x64.tex2
-rw-r--r--mac.tex2
-rw-r--r--overview.tex45
-rw-r--r--registers-x64.tex (renamed from registers.tex)0
-rw-r--r--registers-x86.tex30
-rw-r--r--windows-x64.tex2
-rw-r--r--windows-x86.tex8
9 files changed, 84 insertions, 18 deletions
diff --git a/cdecl-contents.tex b/cdecl-contents.tex
new file mode 100644
index 0000000..d1b126b
--- /dev/null
+++ b/cdecl-contents.tex
@@ -0,0 +1,8 @@
+Arguments: & \multicolumn{6}{l|}{right-to-left on the stack} \\
+ & \multicolumn{6}{l|}{popped by caller} \\
+\hline
+Result: & eax &&&&& \\
+ & d0 &&&&& \\
+\hline
+Callee-saved: & ebx & ebp & esp & esi & edi & \\
+ & d1 & a2 & sp & a3 & a4 &
diff --git a/cdecl.tex b/cdecl.tex
new file mode 100644
index 0000000..0856721
--- /dev/null
+++ b/cdecl.tex
@@ -0,0 +1,5 @@
+\setlength{\tabcolsep}{.2em}%
+\begin{tabular}{lcccccc}
+ \multicolumn{7}{c}{\textbf{\CallingConventionHeader}}\\\hline
+ \csname @@input\endcsname cdecl-contents %
+\end{tabular}%
diff --git a/linux-x64.tex b/linux-x64.tex
index 4caa812..f15cdf1 100644
--- a/linux-x64.tex
+++ b/linux-x64.tex
@@ -1,7 +1,7 @@
\documentclass{cheatsheet}
\begin{document}
\cheatsheettitle[x64]{Linux}
-\input{registers}
+\input{registers-x64}
\bigskip
\cheatsheetbox{\input{system-v-abi}}
diff --git a/mac.tex b/mac.tex
index edd6272..e9f4412 100644
--- a/mac.tex
+++ b/mac.tex
@@ -1,7 +1,7 @@
\documentclass{cheatsheet}
\begin{document}
\cheatsheettitle{Mac}
-\input{registers}
+\input{registers-x64}
\bigskip
\cheatsheetbox{\input{system-v-abi}}
diff --git a/overview.tex b/overview.tex
index d448579..1a78155 100644
--- a/overview.tex
+++ b/overview.tex
@@ -1,6 +1,6 @@
\documentclass{cheatsheet}
-\geometry{a5paper,landscape}
+\geometry{a5paper}
\begin{document}
\begin{center}
@@ -8,30 +8,45 @@
\end{center}
\hfill
-\begin{minipage}[t][][b]{.3\textwidth}%
+\begin{minipage}[t][][b]{.5\textwidth}%
\centering%
- \textbf{Registers}
+ \textbf{Registers, x64}
\bigskip
- \input{registers}
+ \input{registers-x64}
\end{minipage}%
-\hfill
\begin{minipage}[t][][b]{.5\textwidth}%
+ \centering%
+ \textbf{Registers, x86}
+ \bigskip
+
+ \input{registers-x86}
+
+ \bigskip
\tabularwrappingfalse%
\setlength{\tabcolsep}{.2em}%
- \begin{tabular}{|lcccccccc|}%
- \multicolumn{9}{c}{\textbf{{\CallingConventionHeader}s}}\\
- \multicolumn{1}{c}{}\\[-1em]
- \multicolumn{9}{c}{\textit{System V}}\\\hline
- \csname @@input\endcsname system-v-abi-contents \\\hline
-
- \multicolumn{1}{c}{}\\
- \multicolumn{9}{c}{\textit{Microsoft x64}}\\\hline
- \csname @@input\endcsname microsoft-x64-contents \\\hline
- \end{tabular}%
+ \begin{tabular}{|lcccccc|}%
+ \multicolumn{7}{c}{\textit{Cdecl Calling Convention}}\\\hline
+ \csname @@input\endcsname cdecl-contents \\\hline
+ \end{tabular}
\end{minipage}%
\hfill
\bigskip
+\tabularwrappingfalse%
+\setlength{\tabcolsep}{.2em}%
+\begin{tabular}{|lcccccccc|}%
+ \multicolumn{9}{c}{\textbf{x64 {\CallingConventionHeader}s}}\\
+ \multicolumn{1}{c}{}\\[-1em]
+ \multicolumn{9}{c}{\textit{System V}}\\\hline
+ \csname @@input\endcsname system-v-abi-contents \\\hline
+
+ \multicolumn{1}{c}{}\\
+ \multicolumn{9}{c}{\textit{Microsoft x64}}\\\hline
+ \csname @@input\endcsname microsoft-x64-contents \\\hline
+\end{tabular}%
+\hfill
+
+\bigskip
\end{document}
diff --git a/registers.tex b/registers-x64.tex
index 0fd363f..0fd363f 100644
--- a/registers.tex
+++ b/registers-x64.tex
diff --git a/registers-x86.tex b/registers-x86.tex
new file mode 100644
index 0000000..b0d714f
--- /dev/null
+++ b/registers-x86.tex
@@ -0,0 +1,30 @@
+{\hfill%
+\fcolorbox{black}{white}{%
+ \begin{tabular}{ll}
+ A0 & ecx \\
+ A1 & edx \\
+ A2 & ebp \\
+ \hline
+ B0 & eax \\
+ B1 & ebx \\
+ \hline
+ asp & esi \\
+ bsp & esp \\
+ hp & edi \\
+ \end{tabular}%
+}%
+\hfill%
+\fcolorbox{black}{white}{%
+ \begin{tabular}{ll}
+ eax & B0 \\
+ ebx & B1 \\
+ ecx & A0 \\
+ edx & A1 \\
+ \hline
+ ebp & A2 \\
+ edi & hp \\
+ esi & asp \\
+ esp & bsp \\
+ \end{tabular}%
+}%
+\hfill}%
diff --git a/windows-x64.tex b/windows-x64.tex
index c5aa155..76cecf3 100644
--- a/windows-x64.tex
+++ b/windows-x64.tex
@@ -1,7 +1,7 @@
\documentclass{cheatsheet}
\begin{document}
\cheatsheettitle[x64]{Windows}
-\input{registers}
+\input{registers-x64}
\bigskip
\cheatsheetbox{\input{microsoft-x64}}
diff --git a/windows-x86.tex b/windows-x86.tex
new file mode 100644
index 0000000..25c0f83
--- /dev/null
+++ b/windows-x86.tex
@@ -0,0 +1,8 @@
+\documentclass{cheatsheet}
+\begin{document}
+\cheatsheettitle[x86]{Windows}
+\input{registers-x86}
+
+\bigskip
+\cheatsheetbox{\input{cdecl}}
+\end{document}