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 :

Comment afficher mon opération (le résultat) à l'écran ?


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 Comment afficher mon opération (le résultat) à l'écran ?
    voici mon 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
    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    ;****************************************************************
    ;*		utilisations des directives d'assemblage	*
    ;****************************************************************
     
            name direct
     
            .MODEL SMALL
     
    ;******************************************
    ;*		zone de pile			*
    ;******************************************
            .STACK 100h
    ;******************************************
    ;*		zone de données			*
    ;******************************************
            .DATA
    i		dw	?
    j		dw	?
    k		dw	?
    rr              db      ?
    compt		dw 	1
    resul		dw	10 dup(?)
     
     
     
    MIN		EQU	100
    MAX		EQU	200
     
    ;******************************************
    ;*		zone de code			*
    ;******************************************
     affresul DB '    ','$' 
    		.code
     
    		;affectation de l'adresse de début du code dans ds
     
    ;************************************************
    ;*		zone de macro(segment de code)	*
    ;************************************************
     
    ;à faire
     
    operation macro d1,d2,d3
     
    mov ax,2*d1+3*(d2+d3)
     
     
    endm
     
     
     
    ;************************************************
    ;*		point d'entrée			*
    ;************************************************
     
     
    ;call imprresul
     
    ;mov ah,04ch
    ;int 21h
     
    ;imprresul
    ;mov bx,offset affresul
    ;add bx,2
     
    ;mov cx,3
     
    ;chiffre suivant:
    ;push cx
    ;mul un
    ;div dix
     
    ;add dl,48
     
    ;mov [bx],dl
    ;dec bx
    ;pop cx
     
    ;loop chiffre suivant
     
    ;mov ah,09h
    ;mov dx,offset affresul
    ;int 21h
    ;ret
     
     
    DEBUT:		
     
    operation n1,n2,n3
     
     
     
    ;*********déclaration des types
     
    ;à faire
     
    n1=type i
    n2=type j
    n3=type k
     
    EX1=type rr
    EX2=type rr
     
    ;*********initialisations
     
    ; à faire
     
    n1=0
    n2=0
    n3=0
     
     
     
    ;************************************************
    ; boucle de 4 itérations de la macro 		*
    ;************************************************
    ;à faire
     
    REPT 4
     
    operation n1,n2,n3
     
    mov resul,ax
     
     
    n1=n1+1
    n2=n2+2
    n3=n3+3
     
     
    ENDM
     
     
    ;************************************************
    ; la détection du moment ou la différence 	*
    ; est minimale					*
    ;************************************************
     
    ;à faire
     
     WHILE (EX1-EX2) GT 10
     
     
     EX2=EX2+1
     INC compt
     
     mov bx,compt
     
     ENDM
     
    ;*****************************************
    ;    fin
    ;*****************************************
            mov     ax,4c00h                ; terminaison du programme
            int     21h
            end     DEBUT

  2. #2
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 967
    Points : 59 729
    Points
    59 729
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Une recherche sur ce forum devrait te donner tous les éléments nécessaires.
    Par exemple :
    http://www.developpez.net/forums/showthread.php?t=3450
    http://www.developpez.net/forums/sho...light=afficher


  3. #3
    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 ce programme fonctionne t-il?
    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    ;****************************************************************
    ;*		utilisations des directives d'assemblage	*
    ;****************************************************************
     
            name direct
     
            .MODEL SMALL
     
    ;******************************************
    ;*		zone de pile			*
    ;******************************************
            .STACK 100h
    ;******************************************
    ;*		zone de données			*
    ;******************************************
            .DATA
    i		dw	?
    j		dw	?
    k		dw	?
    rr              db      ?
    compt		dw 	1
    resul		dw	10 dup(?)
     
     
     
    MIN		EQU	100
    MAX		EQU	200
     
    ; La chaîne de caractère à imprimer à l'écran
    affnb DB    '   ','$'
    un    DW    1
    dix   DW    10
     
    CALL  imprnb
     
    ;******************************************
    ;*		zone de code			*
    ;******************************************
     affresul DB '    ','$' 
    		.code
     
    		;affectation de l'adresse de début du code dans ds
     
    ;************************************************
    ;*		zone de macro(segment de code)	*
    ;************************************************
     
    ;à faire
     
    operation macro d1,d2,d3
     
    mov ax,2*d1+3*(d2+d3)
     
     
    endm
     
     
     
    ;************************************************
    ;*		point d'entrée			*
    ;************************************************
     
     
    DEBUT:		
     
    operation n1,n2,n3
     
    MOV AH,04CH
      INT 21H
     
    main endp
     
    imprnb proc
      MOV   BX,offset affnb    ; Je lui passe une chaine de 3 caracteres
      ADD   BX,2               ; J'ai 3 chiffre mais j'avance de 2 pour pas ecraser le caractere de fin de chaine '$'
      MOV   AX,nb              ; Je recupere le nb dans AX
      MOV   CX,3               ; CX sert de compteur pour la boucle
      @@chiffreSuivant:
        PUSH  CX
        MUL   un               ; Je multiplie AX par 1 pour eviter les divisions pas 0
        DIV   dix              ; Je divise AX par 10 pour recuper le chiffre dans DL
        ADD   DL,48            ; J'additionne 48 au chiffre pour avoir le code ascii
        MOV   [BX],DL          ; Je deplace la reponse dans la chaine
        DEC   BX               ; Je me deplace dans la chaine
        POP   CX
      LOOP @@chiffreSuivant
     ; J'affiche a l'ecran la chaine qui contient le score
      MOV   AH,09h
      MOV   DX,offset affnb
      INT   21h
      RET
    imprnb endp
     
     
     
    ;*********déclaration des types
     
    ;à faire
     
    n1=type i
    n2=type j
    n3=type k
     
    EX1=type rr
    EX2=type rr
     
    ;*********initialisations
     
    ; à faire
     
    n1=0
    n2=0
    n3=0
     
     
     
    ;************************************************
    ; boucle de 4 itérations de la macro 		*
    ;************************************************
    ;à faire
     
    REPT 4
     
    operation n1,n2,n3
     
    mov resul,ax
     
     
    n1=n1+1
    n2=n2+2
    n3=n3+3
     
     
    ENDM
     
     
    ;************************************************
    ; la détection du moment ou la différence 	*
    ; est minimale					*
    ;************************************************
     
    ;à faire
     
     WHILE (EX1-EX2) GT 10
     
     
     EX2=EX2+1
     INC compt
     
     mov bx,compt
     
     ENDM
     
    ;*****************************************
    ;    fin
    ;*****************************************
            mov     ax,4c00h                ; terminaison du programme
            int     21h
            end     DEBUT

Discussions similaires

  1. Comment afficher mon résultat ?
    Par keokaz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/05/2013, 21h47
  2. Comment afficher mon site en plus grand sur des écran 27 pouce
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/04/2012, 08h22
  3. [SAX] debutant-comment afficher mon doc XML!
    Par moon5 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 30/07/2007, 17h01
  4. Réponses: 2
    Dernier message: 04/10/2006, 14h03
  5. [MySQL] Comment afficher mon tableau
    Par phpaide dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/04/2006, 15h12

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