Assembly
Some quick cheatsheets and tutorials:
This *still makes my brain explode.
mov dest, src
is called Intel syntax. (e.g.mov eax, 123
)mov src, dest
is called AT&T syntax. (e.g.mov $123, %eax
)
UNIX assemblers including the GNU assembler uses AT&T syntax, all other known x86 assemblers Intel syntax. You can read up on the differences on wikipedia
.data
var1 BYTE 10h,
.code
mov al,var1 ; AL = 10h
mov al,[var1] ; AL = 10h
Stack
You can start by reading Stack explained. This is an example of a function and a stack frame after invoking that function.
/* Example of function with many parameters */
long func(long a, long b, long c, long d,
long e, long f, long g, long h)
{
long xx = a * b * c * d * e * f * g * h;
long yy = a + b + c + d + e + f + g + h;
long zz = utilfunc(xx, yy, xx % yy);
return zz + 20;
}
https://en.wikipedia.org/wiki/Win32_Thread_Information_Block#Accessing_the_TIB
Operation Precedence
raise NotImplementedError
Information on Executables
raise NotImplementedError