x86-64 Assembly
Mehdi Makhloufi
MinilibC

Sommaire
Présentation du projet
Le langage x86-64 Assembly
Conclusion
Organisation
Avantage du projet
Présentation 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)
Le langage
x86-64 Assembly
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
Le langage
x86-64 Assembly
Les registres
-r8 : 5ème argument -r9 : 6ème argument -r10 - r15 ...
-32bits registers : esi -16bits registers : si -8bits registers : sil
Le langage
x86-64 Assembly
Les instructions
-Data movement : MOV, ... -Arithmetic : INC, DEC, ADD, SUB, MUL, NEG, ... -Bitwise : XOR, NOT, ... -Resultless : CMP
Le langage
x86-64 Assembly
Les instructions
-Type conversion : CBW, CWDE, CDQE -Bitshifts : SHL, SHR, SAL, SAR, ROL, ROR
Le langage
x86-64 Assembly
Les instructions
Conditional jumps
-Unconditional jump : JMP
-Function call : CALL
-Function return call : RET
-System Function
call : SYSCALL
JE, JNE, JL, JNL, JG, JNG ...
Avantage du projet
Mieux comprendre le langage machine
et nos programmes
...
Avantage du projet
Aide pour l'utilisation de GDB

Organisation


Conclusion
Découvrir un nouveau langage
Comprendre ce que la machine fait avec les registres
Aide à débuger nos projets
Merci pour votre ecoute
MinilibC
By mehdimehd
MinilibC
- 673