begin process at 2010 02 09 21:36:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

tableau avec 8086!help me


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tableau avec 8086!help me

samedi 1 mars 2008 à 19:11:45 | tableau avec 8086!help me

ASBYoucef

bonsoir!j'ai fait un programme qui saisie un tableau,puis il cherche le maximum,mais le problème c'est que il donne une résulata fausse,il donne la dernière valeur introduite.le saisie fonctionne bien ,le triage fonctionne bien,il reste just le passage du saisie vers le triage,la partie qui est en gras :aidezzzzzzzzzzz moi svp ,voici le prgramme:
pile  segment stack
      db 100h dup(?)
pile  ends

data  segment
;msg db "le nombre superieur est","$"
tab db 4 DUP (?)
 data  ends
 
code  segment
assume cs:code, ds:data
main:        

                mov ax,data
                mov ds,ax     
                mov cx,4
                lea bx,tab
                push bx;je sauvgarde l'adresse
;*********saisie des valeurs de tab*******         
boucle:          mov ah,1
                int 21h
                lea bx,tab
                mov [bx],al
                inc bx
                loop boucle
;*******************************************************                         
            pop dx       ;
          mov bx,dx
         mov bx,offset tab                 ;charger bx par l'adresse du 1er element du tableau
        mov al,[bx]                       ;charger ax par la valeur qui se trouve dans l'adresse contenu dans bx
         mov cx,3                          ;charger cx par le nombre d'element du tableau,avec LOOP

label:
                mov ah,[bx+1]                     ;charger AH par la valeur suivant
                cmp ah,al                         ;comparer AH avec AL
                ja  tes                           ; si AH superieur à AL,saut vers TES
                inc bx
                loop label
                jmp fin

tes:
                mov al,ah                         ;ah superieur à al donc il va l'écraser
                inc bx                            ; incrémenter l'adresse pour pointer sur la prochaine valeur
                loop label                        ;sauter vers label
               
fin:           
               
                mov dl,al                         ;AH contient la valeur superieur final du tableau
                or dl,30h                         ;convertion
                mov ah,02h                        ;fonction qui affiche un carractére
                int 21h                           ;interruption
                mov ah,4ch                        ;fonction pour sortir du dos
                int 21h                           ;interruption


code  ends

       end main
     







         
dimanche 2 mars 2008 à 23:42:14 | Re : tableau avec 8086!help me

Guilou34

Dans le boucle : suprime l'instruction lea bx,tab   bx reprend à chaque fois sa valeur initiale donc bx n'est jamais incrémenté! 

mercredi 5 mars 2008 à 08:16:08 | Re : tableau avec 8086!help me

patatalo

Membre Club Administrateur CodeS-SourceS
salut, oui puis ta boucle de test pourrait se resumer a un truc comme ça: pop bx mov cx,3 mov ah,[bx] .1 mov al,ah .2 dec cx lea bx,[bx+1] ;incremente bx je fin ; cx = 0 -> fin mettre aussi "jcxz" fonctionne cmp al,[bx] mov ah,[bx] jae .2 jmp .1 @++


Cette discussion est classée dans : valeur, tableau, mov, bx, al


Répondre à ce message

Sujets en rapport avec ce message

Assembleur et langage C sous Linux [ par lapinfroid ] Bonjour a tous ,avant toute chose , je tiens a preciser que j en ai aucune notion d'assembleur Je pratique plutot le C et le JavaDans un programme C , un code en assembleur [ par tatouna ] salut à tous, je suis débutante en asm donc j'ai un problème et je souhaite que vous m'aidiez j'ai une chaine de caractère (une date) et je veut la p pb avec JMP [ par kaka83185 ] salut tous le monde,je reste comme d'habitude,débutant en assembleur,je travaille avec emu8086,et j'essaye de faire un programme qui fait les branchem Affichage décroissant et alphabétique de 2 listes(Nom_Prénom et Note) [ par m_didi9 ] [code=autre]Data SEGMENT Mess1 DB 10,13, 'Entrez la liste des Noms :' DB 10, 13, '$' Mess2 DB 'Entrez la liste des Notes :' DB 10, 13, '$' Mess3 boot system [ par henri12 ] salut je viens de trouver ce code qui permer de lancer un fichier sur une disquettr a: exemple systemje voudrais qu il me lance le jeu pong sur a:  j message d'erreur [ par kaka83185 ] slt a tous, je suis débutant en langage assembleur,j'essaye de faire mon premier programme en MASM, et c'est en fait l'addition d'un nombre avec un au Affichage de texte [ par ghuysmans99 ] Bonjour à tous,Je suis en train de créer un OS (pour l'instant, 16 bits) et mes routines d'affichage ne fonctionnent pas ...Voilà le code en question prog tri en EMU8086 [ par joneskech ] bsr,j ecrit ce programme pour le tri en EMU8086 ;mais contient des erreures pouvez_vouz m aider?#make_exe#data segment tab db 1 dup (1,9,2,6,3,5)data modification d'interruption au boot [ par Yoha ] Bonjour, je me suis remis à l'assembleur (sous debug pour éviter les compilations) et j'ai modifié l'interruption 80h. Cela fonctionne très bien sous Deplacement [ par FireMan57 ] Bonjour, je débute en asm x86 et j'aimerais savoir comment faire pour effectuer correctement le déplacement d'un personnage en mode graphique. J'ai dé


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,246 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales