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 :

Manipulation des piles


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Manipulation des piles
    Bonjour : j'ai un petit problème. Je veux empiler deux entiers et les mettre chacun dans une pile; après, addition les deux à partir des piles et les empiler dans 3 piles puis afficher. Voilà ce que j'ai fait :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    pile			segment
        ope1     db    10 dup (?)  ;//la pile qui va contenir le premier operand// 
        ope2     db    10 dup (?) ;//la pile qui va contenir le deuxieme operand
        ope3     db    10 dup (?) ;//la pile qui va contenir le troisieme operand	
    pile			ends
    ;********************************************************
    data			segment
    mes		db  'entrer le premier operand:',13,10,'$'
    me		db  'entrer le deuxiem operand:',13,10,'$'
    entrer		db 13
    a		dw ?
    b		db  ?   ; intermediaire pour transformer le contenu de AL vers DX		
    retour		dw 10,'$'
     
    data			ends
    ;********************************************************
    code 			segment
    			Assume ss:pile,ds:data,cs:code
    debut:			
    		mov ax,data
    		mov ds,ax
    mov a,0
    ;***********Affichage de message ****************************
                                  lea dx,mes
    	            mov ah,9
    	            int 21h
    ;********************************************************
    ;***********remplissage de Pile1 ******************************
     
    boucl:
    			    ;lecture et remplissage de la pile 
          			    mov ah,1           
         			    int 21h
    			    cmp al,13
    			    je deux	
    			    mov b,al
    			    mov ax,1
    			    mul b
    			    lea bx,ope1
    			    push ax						    	
    			    loop boucl
    ;********************************************************
    deux:			mov dx,retour
    			mov ah,2
    			int 21h
    ;***********Affichage de message ****************************
                                           lea dx,me
    	            	   mov ah,9
    	                     int 21h
    ;********************************************************			    
    			mov dx,retour
    			mov ah,2
    			int 21h
    ;***********remplissage de Pile2 ******************************
     
    boucle:
    			    ;lecture et remplissage de la pile 
          			    mov ah,1           
         			    int 21h
    			    cmp al,13
    			    je aff	
    			    mov b,al
    			    mov ax,1
    			    mul b
    			    lea bx,ope2
    			    push ax						    	
    			    loop boucle
    ;********************************************************
    			mov dx,retour
    			mov ah,2
    			int 21h
     
     
    ;*******************affichage de la pile1*************************************
    aff:
    mov cx,3
    lea dx,ope1
    			mov dx,retour
    			mov ah,2
    			int 21h	
    depiler :			    
    			    pop dx
    			    mov ah,2
    			    int 21h
    loop depiler			
    ;********************************************************			    
    			mov dx,retour
    			mov ah,2
    			int 21h	
    ;************************affichage de la pile2*******************************
    mov cx,3
    lea dx,ope2
    depile :			    
    			    pop dx
    			    mov ah,2
    			    int 21h
    			    mov ax,dx
    			    ;call deu
    loop depile		
    ;*******************************************************
    ;je cherche a addition le contenu de la pile 1 et 2 et mettre le resultat dans pile3 SVp 
    ;*******************************************************	
    		mov ah,4ch
           		int 21h
     
     
    code			ends
    			end debut

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par maths
    Bonjour : j'ai un petit problème. Je veux empiler deux entiers et les mettre chacun dans une pile; après, addition les deux à partir des piles et les empiler dans 3 piles puis afficher. Voilà ce que j'ai fait :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    pile			segment
        ope1     db    10 dup (?)  ;//la pile qui va contenir le premier operand// 
        ope2     db    10 dup (?) ;//la pile qui va contenir le deuxieme operand
        ope3     db    10 dup (?) ;//la pile qui va contenir le troisieme operand	
    pile			ends
    ;********************************************************
    data			segment
    mes		db  'entrer le premier operand:',13,10,'$'
    me		db  'entrer le deuxiem operand:',13,10,'$'
    entrer		db 13
    a		dw ?
    b		db  ?   ; intermediaire pour transformer le contenu de AL vers DX		
    retour		dw 10,'$'
     
    data			ends
    ;********************************************************
    code 			segment
    			Assume ss:pile,ds:data,cs:code
    debut:			
    		mov ax,data
    		mov ds,ax
    mov a,0
    ;***********Affichage de message ****************************
                                  lea dx,mes
    	            mov ah,9
    	            int 21h
    ;********************************************************
    ;***********remplissage de Pile1 ******************************
     
    boucl:
    			    ;lecture et remplissage de la pile 
          			    mov ah,1           
         			    int 21h
    			    cmp al,13
    			    je deux	
    			    mov b,al
    			    mov ax,1
    			    mul b
    			    lea bx,ope1
    			    push ax						    	
    			    loop boucl
    ;********************************************************
    deux:			mov dx,retour
    			mov ah,2
    			int 21h
    ;***********Affichage de message ****************************
                                           lea dx,me
    	            	   mov ah,9
    	                     int 21h
    ;********************************************************			    
    			mov dx,retour
    			mov ah,2
    			int 21h
    ;***********remplissage de Pile2 ******************************
     
    boucle:
    			    ;lecture et remplissage de la pile 
          			    mov ah,1           
         			    int 21h
    			    cmp al,13
    			    je aff	
    			    mov b,al
    			    mov ax,1
    			    mul b
    			    lea bx,ope2
    			    push ax						    	
    			    loop boucle
    ;********************************************************
    			mov dx,retour
    			mov ah,2
    			int 21h
     
     
    ;*******************affichage de la pile1*************************************
    aff:
    mov cx,3
    lea dx,ope1
    			mov dx,retour
    			mov ah,2
    			int 21h	
    depiler :			    
    			    pop dx
    			    mov ah,2
    			    int 21h
    loop depiler			
    ;********************************************************			    
    			mov dx,retour
    			mov ah,2
    			int 21h	
    ;************************affichage de la pile2*******************************
    mov cx,3
    lea dx,ope2
    depile :			    
    			    pop dx
    			    mov ah,2
    			    int 21h
    			    mov ax,dx
    			    ;call deu
    loop depile		
    ;*******************************************************
    ;je cherche a addition le contenu de la pile 1 et 2 et mettre le resultat dans pile3 SVp 
    ;*******************************************************	
    		mov ah,4ch
           		int 21h
     
     
    code			ends
    			end debut
    dit moi svp il a apparut un message apres le linker : warning no stack ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    le compilateur est tasm ?

Discussions similaires

  1. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  2. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40
  3. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46
  4. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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