Programmation en Assembleur
Louvitou
-
nicocorico Messages postés 846 Statut Membre -
nicocorico Messages postés 846 Statut Membre -
Bonjour,
Pouvez vous m'aidez svp a ecrire un programme en assembleur qui resout une equation du second degre genre Y= 5x2 -2x +6 ou la valeur de X est enregistree dans AL et le resultat de l'equation (Y) est retourne dans AX
Pouvez vous m'aidez svp a ecrire un programme en assembleur qui resout une equation du second degre genre Y= 5x2 -2x +6 ou la valeur de X est enregistree dans AL et le resultat de l'equation (Y) est retourne dans AX
A voir également:
- Programmation en Assembleur
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Logiciel assembleur - Télécharger - Édition & Programmation
- Programmation envoi sms - Guide
- Veuillez attendre la fin de l'installation ou de la modification du programme en cours ✓ - Forum Windows
1 réponse
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