Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Notions
- Commentaires ';'
- #x32
- EIP instruction pointer
- ESP stack pointer
- EBP base pointer
- #General-purpose Rgisters
- EAX AX AH AL
- EBX BX BH BL
- ECX CX CH CL
- EDX DX DH DL
- ESI Source Index
- EDI Destination Index
- EBP Pointeur de pile
- #x64
- RIP, RSP, REAX, RBX, RCX, RDX, etc
- Spécifier le format de la valeur
- h suffix et 0 prefix si lettre, ou 0x -> Hex
- q -> octal
- b -> binary
- d -> decimal
- byte -> 8 bits
- word -> 16 bits -> 2 bytes
- dword -> 32 bits -> 4 bytes
- ## Compilation
- #Pour 32 bits
- nasm -f elf test.asm
- #Pour 64 bits
- nasm -f elf64 test.asm
- #Pour windows: remplacer elf par win32 ou win64
- #Pour MacOS: remplacer elf par macho32 ou macho64
- #Linking (executable)
- ld test.o -o test
- #ou avec main
- gcc test.o -o test
- #test.exe pour windows, plus complexe pour mac..
- #Pour juste C à assembleur
- gcc -S so.c
- #Pour du code et son morceau en assembleur
- g++ -g -O0 -c -fverbose-asm -Wa,-adhln test.c > test.lst
- #Une autre version
- gcc -O -c -g -Wa,-ahl=so.s so.c
- ### Techniques
- # Pour les strings
- .len: equ $ - msg
- ## Autres
- mov ecx, mes ; place l'adresse de mes dans ecx
- mov al, 0x41 ; place le caractère 'A' dans le registre al
- mov [ecx], al ; écrase le caractère à l'espace mémoire représenté par ecx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement