Sie sind auf Seite 1von 2

Il faut savoir que :

Si on déclare la chaine comme suit :

Ch1 db 10 dup(‘$’)

Vous aurez:

Ch1 c’est le tableau qui contient:

(indice)0 1 2 3 4 5 6 7 8 9
$ $ $ $ $ $ $ $ $ $

Le nombre d’éléments=10

Mais pour parcourir votre tableau vous commencez par l’indice 0 (comme dans le langage C)

Si vous utiliser par exemple le BX pour indicer votre chaine de caractère BX va aller de 0 a 9

BX=[0…9]

Faites la différence entre le nombre d’éléments et le chiffre correspondant à l’indice de l’élément

Quand BX=9 vous êtes dans le 10ème élément.

Maintenant quand vous saisissez votre chaine par CLAVIER (via l’écran) et uniquement au
clavier :

(Toujours) Les deux premiers éléments de la chaine dont l’indice est 0 et 1 vont contenir comme
suit :

Le 1er élément va contenir la taille de la chaine déclaré

Le 2eme élément va contenir la taille de la chaine effectif (comme vous l’avez saisie, il faut savoir
que l’espace est compté (c aussi un caractère (de contrôle))

Il faut savoir aussi que le dernier code ascii stocké lors de la saisie de la chaine correspond au
caractère de contrôle (entrer=retour chariot) ce dernier permet d’enregistrer votre chaine et
continuer l’exécution du programme, et c’est uniquement concernant la fonction 0AH (int21H) .

On considère que nous avons saisie la chaine «abc a» au CLAVIER

La taille de la chaine comme déclaré dans le data segment =10

La taille de la chaine saisie au clavier(les espaces sont comptés)=5

10 7 a b c esp c retour $ $
chariot
CR

1
Le code ascii du retour chariot (CR ou cret)=13 en base 10(décimal)= 0D en héxa

Le code ascii de l’espace (esp ou spa)=3210=20h (h=héxa)

Le code ascii du $ c’est les 24h ou 36 en décimal.

Donc on aura le tableau en héxa et en code ascii comme suit :

En code ascii (valeurs héxa) on aura

0Ah 07h 61h 62h 63h 20h 63h 0Dh 24h 24h

il faut savoir aussi que quand vous saisissez une chaine via le clavier le dernier caractère
enregistré avant le ‘$’ avec le quel on a initialisé la chaine.

QUAND vous faites la saisie au clavier LE CRITERE DE COMPARAISON (pour l’arrêt du parcours
/traitement de la chaine) EST LE (0DH) qui correspond au retour chariot.

Ce critère d’arrêt est utilisé a chaque fois que vous manipuler une CHAINE DE
CARACTERES SAISIES AU CLAVIER

Supposant que BX=0,

Pour le parcours d’une chaine vous devez commencez par l’indice (l’adresse) BX+2 (2 valeurs
correspondant aux tailles de la chaine)

Pour savoir si le mot est terminer il faut comparer avec le code ascii de l’espace (car entre
chaque mot on a l’espace)

Mais il ne faut oublier de sauvegarder les indices, pour connaitre ou commence le mot courant,
etc…..

Das könnte Ihnen auch gefallen