Masm32
achref
-
oLjE -
oLjE -
Bonjour,je commence à apprendre l'assembleur masm32 qui se trouve dans mon programme de cette année
mon problème:je n'ai pas trouvé la méthode pour afficher la valeur d'un registre
Par exemple si je fais
mov ax,10
je veux savoir comment je pourrais afficher la valeur 10 qui se trouve dans le registre ax
J'espère trouver une bonne explication et merci d'avance
mon problème:je n'ai pas trouvé la méthode pour afficher la valeur d'un registre
Par exemple si je fais
mov ax,10
je veux savoir comment je pourrais afficher la valeur 10 qui se trouve dans le registre ax
J'espère trouver une bonne explication et merci d'avance
1 réponse
Bonjour,
Je vais essayer de répondre a ta question mais voila bien longtemps que je n'ai pas pratiqué l'assembleur en plus sur PC je suis pas specialement competent... j'ai apris l'assembleur sur Z-80 et 6502 c'est te dire que c'est pas d'hier !!
Comme tu dois t'en douter, en assembleur il n'y a pas d'instructions "complexes" comme print en basic par exemple.
En premier lieu, la valeur que se trouve dans ton registre est 10 (En DECIMALE) mais c'est stoké en BINAIRE ! il faut donc deja retranscrire la valeure 10 en deux caracteres ( Un 1 et Un 0 ) pour faire 10 ou alors, tu peux aussi afficher la valeur en binaire mais c'est nettement moins pratique !
Bref sans passer par la, il faut que tu trouves la routine que permet d'afficher une valeur en decimale contenu dans un registre quelconque (si elle existe)...
Ca ressemblerai alors a :
Move AX,10
CALL "adresse de la fameuse routine"
Ou alors si ya que l'affichage d'un car ASCII ( ce qui est fort possible ) tu utilise le DCB ( Decimale codé Binaire )
10 = 00000000 00001010 ramenons sur 8bits pour simplifier ...
0000 1010 en DCB ca donne : 0001 0000
Tu gardes alternativement les bits de poid fort et de poid faible, tu ajoutes 48(decimale) qui est la valeur ASCII du caractere 0 et tu appels la routine d'affichage de cette valeur qui represente maintenant un CARACTERE !
Et donc il faut une boucle hein !!
Voila, Je ne te donne pas la réponse mais normalement, tu dispose de tout les elements necessaires pour y parvenir (tres bon entrainement pour apprendre l'assembleur !).
Bon courage !
Je vais essayer de répondre a ta question mais voila bien longtemps que je n'ai pas pratiqué l'assembleur en plus sur PC je suis pas specialement competent... j'ai apris l'assembleur sur Z-80 et 6502 c'est te dire que c'est pas d'hier !!
Comme tu dois t'en douter, en assembleur il n'y a pas d'instructions "complexes" comme print en basic par exemple.
En premier lieu, la valeur que se trouve dans ton registre est 10 (En DECIMALE) mais c'est stoké en BINAIRE ! il faut donc deja retranscrire la valeure 10 en deux caracteres ( Un 1 et Un 0 ) pour faire 10 ou alors, tu peux aussi afficher la valeur en binaire mais c'est nettement moins pratique !
Bref sans passer par la, il faut que tu trouves la routine que permet d'afficher une valeur en decimale contenu dans un registre quelconque (si elle existe)...
Ca ressemblerai alors a :
Move AX,10
CALL "adresse de la fameuse routine"
Ou alors si ya que l'affichage d'un car ASCII ( ce qui est fort possible ) tu utilise le DCB ( Decimale codé Binaire )
10 = 00000000 00001010 ramenons sur 8bits pour simplifier ...
0000 1010 en DCB ca donne : 0001 0000
Tu gardes alternativement les bits de poid fort et de poid faible, tu ajoutes 48(decimale) qui est la valeur ASCII du caractere 0 et tu appels la routine d'affichage de cette valeur qui represente maintenant un CARACTERE !
Et donc il faut une boucle hein !!
Voila, Je ne te donne pas la réponse mais normalement, tu dispose de tout les elements necessaires pour y parvenir (tres bon entrainement pour apprendre l'assembleur !).
Bon courage !