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

Assembleur Discussion :

Que fait ce programme ?


Sujet :

Assembleur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 62
    Points : 13
    Points
    13
    Par défaut Que fait ce programme ?
    Bonjour,
    j'ai ce programme

    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
    mov cx,256 
     
    mov ax,00ff h 
     
    mov ds,ax 
     
    xor bx,bx 
     
    saut: mov[bx],al 
     
    dec cx 
     
    inc bx 
     
    jnz saut
    pouvez vous m'expliquer ce qu'il fait au just ????
    car je suis confus entre
    -Le JNZ teste si CX =0
    -Le JNZ qui compare entre BX et CX

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Etant donné que la ligne
    jnz saut 
    suit l'instruction
    inc bx
    ET que le registre des indicateurs est influencé par l'instruction INC, le branchement vers "saut" se fera 65535 fois.

    Le processeur ne sort de la boucle qu'une fois le registre BX passe de 0FFFFh à 0000h.

    Je pense que tu voulais faire un truc du genre...
    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
    	push	ds	; Sauvegarde DS
     
    	mov	ax,0FFh	; AX = Segment de données = 0FFh
    	mov	ds,ax	; DS = AX
    	xor	bx,bx	; BX = Offset de départ = 0 
     
    	mov	cx,256	; CX = Nombre d'itérations = 256
    	mov	al,0FFh	; AL = Valeur à transférer = 0FFh
     
    saut:	mov	[bx],al	; Contenu de DS:[BX] = AL
    	inc	bx 	; Incrémentation de BX
    	dec	cx	; Décrementation de CX 
    	jnz	saut	; Aller à 'saut' si CX <> 0
     
    	pop	ds	; Restaure DS
    ou mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mov	ax,0FFh	; AX = Segment de données = 0FFh
    mov	es,ax	; ES = AX
    xor	di,di	; DI = Offset de départ = 0 
     
    mov	cx,256	; CX = Nombre d'itérations = 256
    mov	al,0FFh	; AL = Valeur à transférer = 0FFh
     
    rep	stosb	; Contenu de ES:[DI] = AL ; Incrémentation de DI
    		; Décrementation de CX ; Répeter l'opération tant que CX <> 0
    Remarque !

    J'ai laissé...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mov	ax,0FFh	; AX = Segment de données = 0FFh
    mais évidemment, il faut revoir cette valeur afin de pouvoir pointer une zone de mémoire où nous pouvons transférer des données sans créer de conflits.

Discussions similaires

  1. que fait ce programme java?
    Par freemasons dans le forum Langage
    Réponses: 5
    Dernier message: 17/01/2008, 16h45
  2. Que fait ce programme ?
    Par lebossejames dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/03/2007, 05h32
  3. que fait ce programme?
    Par minen dans le forum C
    Réponses: 15
    Dernier message: 31/12/2006, 18h08
  4. Que fait ce programme de matrices ?
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 28/07/2006, 23h00
  5. Que fait ce programme ?
    Par babar56 dans le forum C
    Réponses: 32
    Dernier message: 16/01/2006, 21h31

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