marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011
-
18 nov. 2010 à 23:48
marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011
-
21 nov. 2010 à 17:00
bonjour,
j'ai ecrit un code assembleur qui compte le nombre des séparateurs dans une chaine saisie,en assemblant tout va bien mais l'execution ne donne pas le resultat attendu,elle donne rien meme je ne sais pas où reside l'erreur.J'ai même utilisé un debugger mais je n'ai pas trouvé la faille.si vous pouvez bien m'aider ça serait gentille
voici mon code:
.model small
.stack 200h
.data
chaine db 10,13,"je veux tester seulement$"
msg5 db 10,13, "le nombre de separateur est:$"
.code
start:
mov ax,@data
mov ds, ax
xor CX, CX \\initialisation du compteur de sep
lea si,chaine \\on pointe si
boucle:
mov [si],al
cmp al," " \\comparaison avec un espace (comme essaie)
jz separateur
cmp al,'$' \\verifier si c'est la fin de la chaine
jz fin
jmp incrementation
fin:
mov ah,9
lea dx,msg5
int 21h
mov ah,2 \\affichage du nbre de separateurs
mov dx,cx
int 21h
incrementation:
inc si
jmp boucle
separateur:
inc cx
jmp incrementation
end start
marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011 19 nov. 2010 à 00:02
OUUUUPS une petite erreur à corriger:
on remplace mov [si],al
par mov al, BYTE PTR [bx]
mais maintenant le resultat est le suivant:
au lieu d'afficher le nombre de separateurs,il affiche le msg5 à chaque fois il rencontre un separateurs et il bloque dans une boucle infinie (constaté en utilisant un debugger)
marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011 19 nov. 2010 à 01:31
re,
vraiment merci pour la reponse!!!
le petit hic c'est SETE, ça n'existe pas en tasm,il m'affiche l'erreur suivante
illegal instruction for currently selected processor
par quoi je peux la remplacer??
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 19 nov. 2010 à 09:41
sete, ç'est peut-être effectivement du 486. Regarde les options d'assemblage, tu dois pouvoir modifier la machine. Sinon, il y a plein d'autres possibilitées.
Avec masm, tu peux préciser .386, .486, ... et tasm ressemble beaucoup a masm.
marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011 19 nov. 2010 à 13:15
re,merci infiniment pour cette aide
j'ai utilisé aprés une fonction pour convertir ce nombre binaire que contient cx en une chaine,le resultat affiché est correcte mais juste aprés le resulta il affiche aussi une chaine avec des caracteres bizarres,comment je peux l'enlever??