IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

Mauvaise valeur récupérée dans DL


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 56
    Points : 52
    Points
    52
    Par défaut Mauvaise valeur récupérée dans DL
    Bonsoir,
    j'ai un petit probleme avec mon code assembleur, je programme en avec tasm(le prof veut qu'on utilise ce simulateur), et j'ai quelque chose qui m'interpelle au niveau du code que je ne comprend pas bien...
    Je vais commencer par le debut, une fois le code chargé, je rajoute deux rangée de chiffre a l'adresse 200 et 210 de cette facon:
    "e ds:200'132465'"
    "e ds:210'13654'"
    et voici le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    0D18:0100 33C0          XOR	DX,DX                              
    0D18:0102 33DB          XOR	BX,BX                              
    0D18:0104 33C9          XOR	CX,CX                              
    0D18:0106 33D2          XOR	AX,AX                              
    0D18:0108 B330          MOV	BL,30                              
    0D18:010A BE0F00        MOV	SI,000F      ;//mets la valeurs 000f dans ax                      
    0D18:010D 80BC000200    CMP	BYTE PTR [SI+0200],00     ;//compare le premier octets qui pointe a l'adresse 200+si avec 00
    0D18:0112 7503          JNZ	0117 ;//jump en 117 si le resultat de la ligne precedente a mis le flag zero flag a 0                         
    0D18:0114 4E            DEC	SI ;//decremente si                                
    0D18:0115 EBF6          JMP	010D ;//jmp a 10D                              
    0D18:0117 BF0F00        MOV	DI,000F ;//mets 000f dans di                           
    0D18:011A 80BD100200    CMP	BYTE PTR [DI+0210],00              
    0D18:011F 7503          JNZ	0124                               
    -u
    ; dans si se trouve le nombre de chiffre qu'il y a dans 200
    ;dans di se trouve le nombre de chiffre qu'il y a dans 210
    0D18:0121 4F            DEC	DI                                 
    0D18:0122 EBF6          JMP	011A                                                           
    0D18:012E 8A951002      MOV	DL,[DI+0210] ; dans dl se trouve ce qu'il y a l'adresse 210 +di (di est la position du dernier chiffre dans cette adresse)
    ; mais il y a 30 qui se rajoute dans dx en plus pourquoi???
    Voila tous est dis dans les commentaires du code , si quelqu'un a une idée
    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    Parce qu'apparemment, ce ne sont pas des valeurs numériques que tu as déposées, mais une chaîne de caractères. Et le code ASCII du « 0 » est 30h (48d), celui du « 1 » est 31h (49d), et ainsi de suite.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta reponse tous deviens plus clair
    Et quel rapidité pour la reponse^^ encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. arrondir une valeur récupérée dans une textbox
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2008, 17h11
  2. Réponses: 3
    Dernier message: 14/08/2006, 21h27
  3. vb6: Stocker des valeurs récupérés dans un TextBox sous excel
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 32
    Dernier message: 19/07/2006, 16h12
  4. Réponses: 4
    Dernier message: 12/06/2006, 11h46
  5. Réponses: 4
    Dernier message: 01/12/2005, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo