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 :

A quoi servent ces instructions ?


Sujet :

Assembleur

  1. #1
    Provisoirement toléré
    Profil pro
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut A quoi servent ces instructions ?
    Bonjour! je cherche à savoir kel est la fonction de chaque ligne et ce bout de programme associé à mon programme principal affiche le résultat en décimal de mon opération répété 4 fois MAIS il m'affiche chaque résultat sans espace !!

    Peut -on effectuer un espace pour chaque résultat et pourquoi doit-on utiliser toutes ces lignes juste pour afficher le résultat en décimal de mon opération?

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    AFFICHER_AX_DEC:		;affiche une valeur comprise entre 0 et 65535 contenue dans AX
    		push	dx cx bx ax
    			mov	bx, 2710h 			;10000 en dec
    			xor	cl, cl
    			boucle2:
    				xor	dx, dx
    				div	bx
    				;test pour ne pas afficher les zéros de devant
    				or	cl, al
    				cmp	cl, 0
    				je	nepasafficherzero2
    					push	ax	
    						add	al, 30h		;48 en dec
    						mov	ah, 0Eh
    						int	10h
    					pop	ax
    				nepasafficherzero2:
    			        cmp	bx, 1
    				je	finboucle2
    				push	ax dx
    					xor	dx, dx
    					mov	ax, bx
    					mov	bx, 000Ah	;pour diviser par 10 soit 000A
    					div	bx
    					mov	bx, ax
    				pop	ax			;je récupère dx dans ax
    				inc	sp	;j'incrémente de 2 sp pour compenser le push ax d'avant
    				inc	sp
    				jmp	boucle2
    	finboucle2:
    		cmp	cl, 0
    		jne	fin2
    		mov	ax, 0E30h
    		int	10h
    		fin2:
     
    		pop	ax bx cx dx
     
    		ret       ;  retour au sous-programme
    Merci d'avance !!

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour,
    Citation Envoyé par lebossejames
    Bonjour! je cherche à savoir quelle est la fonction de chaque ligne et ce bout de programme associé à mon programme principal affiche le résultat en décimal de mon opération répété 4 fois MAIS il m'affiche chaque résultat sans espace !!

    Peut-on effectuer un espace pour chaque résultat
    Oui, il suffit d'insérer dans la boucle
    (20h étant le code ASCII du caractère blanc).

    Citation Envoyé par lebossejames
    et pourquoi doit-on utiliser toutes ces lignes juste pour afficher le résultat en décimal de mon opération?
    Le contenu des registres n'est pas du décimal. Tu as besoin d'un bon cours d'Assembleur : la conversion en décimal est expliquée dans le tutoriel de Sébastien Le Ray, au chapitre 1.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 45
    Points : 44
    Points
    44
    Par défaut
    je te propose ce code ( procedure aff_decimal)c tres simple et ca marche à tout les coup.

    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
    aff_decimal Proc near
    xor cx,cx
    mov BX,10
    et1: xor DX,DX
    div BX
    Push DX
    inc CX
    cmp ax,0
    jne et1
    et2: Pop Dx
    add dl,30h
    mov ah,2
    int 21h
    loop et2
    RET
    aff_dicimal endp
    cette procedure affiche le contenu en decimal le contenu du registre Ax (0-65556) en décimal

Discussions similaires

  1. A quoi servent ces fichiers
    Par taquilla dans le forum C++Builder
    Réponses: 1
    Dernier message: 27/12/2007, 21h39
  2. A quoi servent ces packages?
    Par jwidd dans le forum Windows
    Réponses: 0
    Dernier message: 13/08/2007, 14h06
  3. [FireBird][Transaction] A quoi servent ces paramètres
    Par aityahia dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/06/2007, 10h34
  4. A quoi servent ces fichiers
    Par ChPr dans le forum NetBeans
    Réponses: 14
    Dernier message: 31/05/2007, 13h17
  5. A quoi servent ces instructions ?
    Par lebossejames dans le forum Assembleur
    Réponses: 1
    Dernier message: 09/03/2007, 21h59

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