Mehdi Makhloufi
Présentation du projet
Le langage x86-64 Assembly
Conclusion
Organisation
Avantage du projet
C Standard Library
int strlen(char *str)
int strcmp(char *s1, char *s2)
char *strchr(const char *s, int c)
void *memset(void *s, int c, size_t n)
void *memcpy(void *dest, void *src, size_t n)
...
char *strpbrk(const char *dest, const char *accept)
Les registres
-rdi : 1er argument
-rsi : 2ème argument
-rdx : 3ème argument
-rcx : 4ème argument
(counter for loop)
-rax : valeur de retour -rbx : base register -rsp : stack pointer -rbp : frame pointer
Les registres
-r8 : 5ème argument -r9 : 6ème argument -r10 - r15 ...
-32bits registers : esi -16bits registers : si -8bits registers : sil
Les instructions
-Data movement : MOV, ... -Arithmetic : INC, DEC, ADD, SUB, MUL, NEG, ... -Bitwise : XOR, NOT, ... -Resultless : CMP
Les instructions
-Type conversion : CBW, CWDE, CDQE -Bitshifts : SHL, SHR, SAL, SAR, ROL, ROR
Les instructions
Conditional jumps
-Unconditional jump : JMP
-Function call : CALL
-Function return call : RET
-System Function
call : SYSCALL
JE, JNE, JL, JNL, JG, JNG ...