Programmation en Assembleur
Fermé
Louvitou
-
25 juil. 2011 à 00:08
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 25 juil. 2011 à 06:43
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 25 juil. 2011 à 06:43
A voir également:
- Programmation en Assembleur
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- 'Pip' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. ✓ - Forum Python
1 réponse
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 25/07/2011 à 17:29
Modifié par nicocorico le 25/07/2011 à 17:29
L'assembleur étant très orienté calcul pur, c'est presque aussi simple qu'en language de haut niveau, et voici la marche à suivre sous forme de fonction :
-> en assembleur 16 bits : Function Equation(Valeur: Byte): Word; // valeur dans AL asm Xor AH,AH; // Met 0 dans AH car il fera partie de la multiplication Mov CX,AX Imul AX,AX,05; // On multiplie AX par lui-même et 5 Add CX,CX; // Multiplie par 2 Sub AX,CX; Add AX,06; end; // Retour de fonction via AX -> en asm 32 bits : Fonction Equation(Valeur: Byte): DWord; asm Movzx EAX,AL; // Conserve AL seulement Lea ECX,[EAX+EAX-06] // Lea permet de faire des opérations simples, en préfèrant ici EAX+EAX à EAX*2 car l'opcode est plus léger Imul EAX,EAX,5; // On multiplie EAX par lui-même et 5 Sub EAX,ECX; // On soustrait 2x et -6 (donc +6) end; // Retour de fonction via EAX