Accueil > Forum > > > > question (affectation d'un caractere)
question (affectation d'un caractere)
mardi 23 novembre 2010 à 20:41:16 |
question (affectation d'un caractere)

marooh
|
bonjour,
une question simple
comment affecter à une variable un caractere??
char db ?
mov si,offset chaine
mov char,byte ptr[si]
pourquoi ça marche pas??
|
|
mardi 23 novembre 2010 à 21:06:18 |
Re : question (affectation d'un caractere)

ToutEnMasm
|
Réponse acceptée !
mov [char],byte ptr [esi] ;parait mieux ?
Pas du tout,les transactions entre mémoire doivent passer par les registres.
mov al,[esi]
mov char,al
|
|
mardi 23 novembre 2010 à 22:55:04 |
Re : question (affectation d'un caractere)

marooh
|
re,
juste une derniere question.
j'ai un probleme de registre que je n'arrive pas à resoudre ici.un code pour trouver la lettre la plus occurente dans la chaine
Code : .model small
.stack 100h
.data
chaine db "je veux tester$"
char db '$'
nr dw ?
tch dw ?
entre dw 10,13,'$'
msg4 dw "le nombre de repétion de caractére le plus reccurence est:$"
.code
mov tch,14
mov si,offset chaine
mov nr,0
mov cx,tch
dec cx
mov dx,si
add dx,tch
repete14:
mov bx,0
mov al,[si]
mov char,al
repete24:
mov al,[si+1]
cmp al,char
je meme
jmp different
meme:
inc bx
different:
inc al
cmp al,dx \\dans cette ligne,je n'ai pas su faire la modification adequate
jg repete24
inc si
cmp dx,nr
jg affecter
loop repete14
affecter:
mov nr,bx
loop repete14
mov dx,offset msg4
mov ah,9
int 21h
mov ax,nr
mov ah,2
int 21h
mov dx,offset entre
mov ah,9
int 21h
|
|
mercredi 24 novembre 2010 à 14:43:23 |
Re : question (affectation d'un caractere)

ToutEnMasm
|
Je n'ai pas trop lu le code parce qu'il semble manquer quelque chose.
La bonne manière de procéder:
créer un tampon de 26 bytes intialiser a zero.
Différencie-t-on minuscules majuscules ?
si oui deuxieme tampon.
Si non,lire caractere:
soustraire de al,la valeur de "A"
mettre al dans bx
inc [ds:tamp+bx]
fin:
mov al,[tamp]
mov bx,1
@@:
.if al < [ds:tamp+bx]
mov al,[ds:tamp+bx]
inc bx
jmp @B
.endif
RAJOUTE la condition d'arrêt (ecx par exemple)
|
|
mercredi 24 novembre 2010 à 20:56:27 |
Re : question (affectation d'un caractere)

marooh
|
re,
merci pour la reponse!!
j'ai écrit une fonction pour trouver le mot le plus long d'une chaine,ça assemble sans probleme mais l'execution ne donne pas de resultat
j'ignore la source du probleme,j'ai lu et relu le code plusieurs fois mais en vain
Code : motch macro
mov nbc,0
mov nbcmax,0
mov di,offset MotLong
mov si,offset chaine
repeter :
mov al,chaine[si]
inc si
cmp al,'0'
je stopAjout
cmp al,' '
je stopAjout
cmp al,','
je stopAjout
mov MotLong[di], al
inc di
add nbc,1
jmp repeter
stopAjout :
mov MotLong[di] ,'0'
mov al,nbcmax
mov bl,nbc
cmp al, bl
jg pasChangementDuMot
mov nbcmax,bl
xor di,di
repeter1 :
mov al,MotLong[di]
mov MotPlusLong[di],al
cmp al,'0'
je finChangement
inc di
jmp repeter1
finChangement :
pasChangementDuMot :
mov di,si
add di,-1
mov al,chaine[di]
cmp al,'0'
je finChaine
xor di,di
jmp repeter
finChaine :
mov ah,9
lea dx,msg6
int 21h
xor di,di
mov cl,nbcmax
affiChaine :
mov dl,MotPlusLong[di]
cmp dl,'0'
je fintot
inc di
mov ah,2
int 21h
jmp affichaine
fintot :
endm
|
|
jeudi 25 novembre 2010 à 14:07:30 |
Re : question (affectation d'un caractere)

Guilou34
|
Salut
Il est très difficile de trouver une erreur à partir d'une source, surtout lorsqu'elle n'est pas documentée. Mais il y a tout de même dans ta macro des erreurs qui sautent aux yeux :
mov al,chaine[si] signifie mov al,[chaine]+[si]
c'est à dire mov al offset (chaine)+offset (chaine) alors qu'il suffit de mov al,[si].
Il en va de même pour
mov motlong[di],0 il sufit de mov [di],0
Mais la question qui se pose c'est pourquoi ne
pas utiliser Debug? Ceci vaut d'ailleurs pour la plupart des messages sur ce site.
Amicalement
|
|
vendredi 26 novembre 2010 à 23:35:12 |
Re : question (affectation d'un caractere)

patatalo
|
salut,
Tu as encore oublié d'initialiser tes segments !!!
@++
on peut dire que tu as de la suite dans les idées mais intel 386 en bouquin de chevet et un debugger pour comprendre ce que fais chaque ligne de code me paraît être un bonne idée.
@++
|
|
vendredi 26 novembre 2010 à 23:41:50 |
Re : question (affectation d'un caractere)
|
vendredi 26 novembre 2010 à 23:45:58 |
Re : question (affectation d'un caractere)
|
Cette discussion est classée dans : caractere, question, mov, char, affectation
Répondre à ce message
Sujets en rapport avec ce message
Question de débutant [ par Laurent1313 ]
Voilà je débute avec l'assembleur sous Delphi et il y a un truc que je ne comprends pas. Je voudrais juste savoir quelle est la différence entre :ça :
strrev [ par vecchio56 ]
Je regarde le fichier strrev.asm qui est utilisé au moins pour les debogages et je remarque que c'est une traduction d'un algorithme écrit en C qui es
Chaine [ par RM50Man ]
Voila je saisi ma chaine de caractere comme suit:mov ah, 0chmov al, 0ahmov dx, offset bufferint 21h mov ah, 09hmov dx, offset bufferint 21het ensuite
couleur en TASM ? [ par redwings ]
j'aimerai savoir les instructions qui permettent d'affiche un caractere en couleurAL contient le caractere ...MOV DL,AL MOV AH,02hINT 21h...merci
afficher une chaine de caractere dans le sens inverse [ par Orlyn ]
Bonjour, Je suis depsuis hier aprem sur un prog et ca fait des heures que je cherche (en changeant le prog et en cherchant sur google et partout) mai
question sur le language asm [ par dyroj ]
bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se
CHAINE CARACTERE [ par zeco2 ]
AIDE MOI SVP POUR QUE CE PROGRAMME ARRETE DE SAISI LA CHAINE SI ON TAPEZ SUR LE CARACTERE '#' title chaine caractére .386 .model small .stack 100h
chaine de caractères [ par jijij ]
salut, je veux écrire un programme capable de saisir une chaine de caractères la lecture doit s'arreter à la rencontre du "#" code: Title chaine .mode
Saisie & Calcul de sa taille de caractère en tasm [ par baz13shaz ]
je veut saisir une chaine de caractère & calculer sa taille,et je veut charger la chaine saisie en mémoire centrale? que doit je faire? comment je peu
je bloque!!!! [ par marooh ]
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 donn
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|