Saisie et affichage de valeur en assembleur
Fermé
don1design
Messages postés
72
Date d'inscription
vendredi 4 juin 2010
Statut
Membre
Dernière intervention
4 septembre 2015
-
19 juil. 2011 à 02:07
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 19 juil. 2011 à 18:40
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 19 juil. 2011 à 18:40
A voir également:
- Saisie et affichage de valeur en assembleur
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Si valeur comprise entre x et y alors ✓ - Forum Excel
- Affichage double ecran - Guide
- Problème affichage le bon coin ✓ - Forum Virus
5 réponses
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 19/07/2011 à 13:06
Modifié par nicocorico le 19/07/2011 à 13:06
Hé bien tout dépend de ton logiciel d'assemblage et de l'environnement sous lequel tu l'exécutes...
Sachant qu'en asm tu ne peux même pas appeler les fonctions bases type Cin, ReadLn des languages évolués, tu peux au pire te servir des fonctions du bios via les interruptions. Mais si ton but c'est d'écrire en asm de manière plus exploitable, je te conseille plutôt d'utiliser un language évolué en soutiens de l'assembleur genre delphi 6.0, que tu peux trouver gratuitement dans google, ou en C mais là je ne sais pas ce qui existe...
De plus ça te permettras de faire de l'asm 32 bits, bcp plus souple et puissant...
Ceci étant dit, quelques remarques :
Sachant qu'en asm tu ne peux même pas appeler les fonctions bases type Cin, ReadLn des languages évolués, tu peux au pire te servir des fonctions du bios via les interruptions. Mais si ton but c'est d'écrire en asm de manière plus exploitable, je te conseille plutôt d'utiliser un language évolué en soutiens de l'assembleur genre delphi 6.0, que tu peux trouver gratuitement dans google, ou en C mais là je ne sais pas ce qui existe...
De plus ça te permettras de faire de l'asm 32 bits, bcp plus souple et puissant...
Ceci étant dit, quelques remarques :
- Le type octet semble un peu court pour faire du calcul au carré... Tu peux organiser ton code en fonction standard type, avec retour word AX: Fonction Operation(Valeur : Byte): Word; - Tu ne peux pas transférer un registre octet vers un mot - Mov BX,AL - Il faut mettre AH à 0 puis Mov BX,AX. - Mul ne multplie qu'avec AX, donc 'mul BX' égale 'Mul AX,BX'. Avec une petite réorganisation ça donne : Fonction Operation(Valeur : Byte): Word; // La valeur passe par AL en standard asm Xor AH,AH; mov BX,AX mul AX // On multiplie AX par lui-même en conservant BX Imul AX,05 // Mul ne permet pas de multiplier avec une constante Add BX,BX // En asm on additionne ou on décale d'1 bit (Shl BX,01) plutôt qu'une multiplication Sub AX,BX; Add AX,06; end; // Le retour de fonction via AX est standard En asm 32 bits, en préférant ECX à EBX : Fonction Operation(Valeur : Byte): DWord; asm Movzx EAX,AL; Lea ECX,[EAX*2] // Lea permet de faire des opérations simples Imul EAX,EAX,5 // On multiplie EAX par lui-même et par 5 Sub EAX,ECX; Add EAX,06; end; // Le retour de fonction via EAX est standard
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 19/07/2011 à 18:52
Modifié par nicocorico le 19/07/2011 à 18:52
Je pense que emu8086 sera compatible avec win xp, mais ton code ne fonctionnera toujours pas car la moitié des expressions seront illégales pour le compilateur, ce serait bien que tu lises ce que j'ai ecris plus haut...
Le chêne aussi était un gland, avant d'être un chêne
don1design
Messages postés
72
Date d'inscription
vendredi 4 juin 2010
Statut
Membre
Dernière intervention
4 septembre 2015
19 juil. 2011 à 07:42
19 juil. 2011 à 07:42
j'utilise
emu8086 4.08
sur windows 7 ultimate 64bits
emu8086 4.08
sur windows 7 ultimate 64bits
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
19 juil. 2011 à 12:22
19 juil. 2011 à 12:22
Hé bien tu dois pouvoir utiliser l'interruption 10h pour lire et écrire, mais tout dépend de ce que tu veux faire car si tu veux faire de l'asm dans de bonnes conditions, mieux vaut passer au 32 bits, et comme je te le disais tu peux obtenir delphi 6.0 gratuitement, et il te permet de faire du mode console et de programmer en asm uniquement, ou bien de programmer en mode graphique et d'utiliser toutes les facilitées du language évolué, le tout sans émulateur...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
don1design
Messages postés
72
Date d'inscription
vendredi 4 juin 2010
Statut
Membre
Dernière intervention
4 septembre 2015
19 juil. 2011 à 14:00
19 juil. 2011 à 14:00
bon je vais devoir
utiliser l'IBM ThinkPad de mon petit frere windows xp 32bits
je peux tjr utiliser eme8086 sur l'IBM ou je dois telecharger ASM?
cette sequence de code
[CODE]mov BX, AL ; stocker la valeur de X dans BX
mul BX ; multiplier BX par BX
mul BX, 5 ; multiplier BX par 6
mov CX, AL ; stocker la valeur de X dans CX
mul CX, 2 ; multiplier la valeur de X par 2 et la stocker dans CX
sub BX, CX ; soustraire BX par CX
add BX, 6 ; additioner BX par 6
mov AX, BX ; placer BX dans AX
[/CODE]
sera telle tjr valabe sur ASM?
quelle est la commande qui me permettera de faire la saisie de la valeur 'X' ?
et celle qui me permettra d'afficher 'Y' ?
utiliser l'IBM ThinkPad de mon petit frere windows xp 32bits
je peux tjr utiliser eme8086 sur l'IBM ou je dois telecharger ASM?
cette sequence de code
[CODE]mov BX, AL ; stocker la valeur de X dans BX
mul BX ; multiplier BX par BX
mul BX, 5 ; multiplier BX par 6
mov CX, AL ; stocker la valeur de X dans CX
mul CX, 2 ; multiplier la valeur de X par 2 et la stocker dans CX
sub BX, CX ; soustraire BX par CX
add BX, 6 ; additioner BX par 6
mov AX, BX ; placer BX dans AX
[/CODE]
sera telle tjr valabe sur ASM?
quelle est la commande qui me permettera de faire la saisie de la valeur 'X' ?
et celle qui me permettra d'afficher 'Y' ?