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 :

Instructions pour l'affichage dans un programme de tri


Sujet :

x86 16-bits Assembleur

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Instructions pour l'affichage dans un programme de tri
    Salut,

    Je voudrais de l'aide pour terminer l'affichage d'un programme de tri.
    Je voudrais les instructions d'affichage et où je les mets.
    Et merci.

    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
    org 100h
     
    debut: MOV taille,10  ; taille du tableau
           MOV taille2,8  ; taille du tableau-2
           MOV BX,-1      ; BX : indice du tablaeu
     
           boucle1: INC BX          ; BX = BX + 1
                    MOV ind_min,BX  ; ind_min = i
                    MOV AL,tab[BX]  ; AL = tab[indice_min]
                    MOV SI,1        ; SI = 1 
     
                    boucle2: CMP tab[BX+SI],AL  ; comparer les contenues de tab[BX+SI] et AL
                             JAE boucle3        ; sauter si le contenue de tab[BX+SI] est superieur a AL
     
                             ; si inferieur, on a un nouveau minimum
                             MOV CX,BX
                             ADD CX,SI          ; CX=BX+SI
                             MOV ind_min,CX     ; CX contient le nouveau ind_min
                             MOV AL,tab[BX]     ; AL = tab[indice_min]  contient le nouveaux minimum
     
     
                             boucle3: INC SI
                                      MOV CX,BX
                                      ADD CX,SI          ; CX=BX+SI
                                      CMP CX,taille      ; CX doit etre inferieure a taille
                                      JNE boucle2
     
                    ; permutation de tab[BX] et tab[ind_min]
                    MOV DI,ind_min
                    MOV AH,tab[BX]
                    MOV tab[BX],Al
                    MOV tab[DI],AH
     
                    CMP BX,taille2      ; BX doite etre a taille2
                    JNE boucle1
     
     MOV AH,4CH
     int 21h 
     
     ; defintion de de donnees
     tab db 42,6,15,22,1,0,100,31,17,10
     taille dw ?
     taille2 dw ?
     ind_min dw ?

  2. #2
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    quel compilateur uttilisez vous?
    n'y a t'il pas des erreurs a la compilation?
    qu'est ce que vous voulez afficher au juste?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    je veux afficher de tableau trié
    j' utilise l’Émulateur 8086

  4. #4
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    pour écrire un caractère a l'écran on fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mov ah,0Eh ;le numéros de fonction du bios
    mov al,"0"   ;caractère a afficher (ici zéro)
    mov bh,0
    mov bl,07h  ;couleur du caractère
    int 10h        ;l'appel des fonction graphique du bios
    par contre je ne saisie pas ce que doit faire exactement votre code, doit il remettre les octets de tab dans l'ordre croissant?


    sinon une simple fonction qui affiche le nombre dans le registre al:
    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
    push ax
    push cx
    push dx
     
    mov cl,10
    xor ah,ah   ;met a zero ah
    div cl        ;divise ax par cl, met le résultat dans al et le reste dans ah
    mov dl,ah  ;on sauvegarde le  troisième chiffre dans dl
    xor ah,ah   
    div cl 
    mov dl,ah  ;on sauvegarde le deuxième chiffre dans dh
    xor ah,ah   
    div cl 
    mov al,ah   ;on sauvegarde le premier chiffre dans dh 
     
    add al,"0" ;on transforme le chiffre en code ascii correspondnant
    call affiche   ;on affiche le 1er chiffre
     
    mov al,dh
    add al,"0" ;on transforme le chiffre en code ascii correspondnant
    call affiche   ;on affiche le 2em chiffre
     
    mov al,dl
    add al,"0" ;on transforme le chiffre en code ascii correspondnant
    call affiche   ;on affiche le 3em chiffre
     
    pop dx
    pop cx
    pop ax
    ret
    avec une sous fonction qui affiche le caractère dans al
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    affiche:
    push ax
    push bx
    mov ah,0Eh
    mov bh,0
    mov bl,07h  
    int 10h   
    pop bx
    pop ax
    ret

Discussions similaires

  1. Réponses: 10
    Dernier message: 28/08/2013, 16h16
  2. Réponses: 2
    Dernier message: 02/09/2008, 17h04
  3. instruction pour ouvrir url dans un code c#
    Par xx_FiFty_xx dans le forum C#
    Réponses: 1
    Dernier message: 23/05/2008, 16h31
  4. Réponses: 1
    Dernier message: 23/11/2007, 10h03
  5. SaveFileDialog pour un fichier dans un programme
    Par jockyboss777 dans le forum VB.NET
    Réponses: 67
    Dernier message: 09/06/2007, 18h43

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