From 437b37306ec441823d401fe64fbf99936754b206 Mon Sep 17 00:00:00 2001
From: johannst Explicitly specify size of the operation.Size directives
mov byte ptr [rax], 0xff // save 1 byte(s) at [rax]
+
mov byte ptr [rax], 0xff // save 1 byte(s) at [rax]
mov word ptr [rax], 0xff // save 2 byte(s) at [rax]
mov dword ptr [rax], 0xff // save 4 byte(s) at [rax]
mov qword ptr [rax], 0xff // save 8 byte(s) at [rax]
@@ -227,7 +227,7 @@ r9 6
-----------
xmm0 1
.. ..
-xmm7 7
+xmm7 8
HI ADDR
+Hi ADDR
| +------------+
| | prev frame |
| +------------+ <--- 16 byte aligned (X & ~0xf)
@@ -283,10 +283,26 @@ must must save these registers in case they are used.
| [rbp-8] | func stack |
| | ... |
v +------------+
-LO ADDR
+Lo ADDR
push rbp // save caller base pointer
+mov rbp, rsp // save caller stack pointer
+
+mov rsp, rbp // restore caller stack pointer
+pop rbp // restore caller base pointer
+
+++Equivalent to
+leave
instruction.
Small assembler skeleton, ready to use with following properties: