begin process at 2012 02 09 05:55:16
  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 [ASM] Que la vie était simple sous MS-DOS 16 bits (scan mémoire physique) [ par dogloop ] J'ouvre ce topic pour essayer de mieux comprendre quelles sont les différentes façons pour accéder à toute la RAM (et aussi peut être la ROM) de mon 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 ERREUR DE SEGMENTATION en asm [ par tahsgh ] salam; jai le code suivant ----------------------------------------- global main SECTION . text main : PROGRAMME EN NASM : pas du tout facile [ par eishtein ] bonjour tout le monde; je me demandais si vous pouvez m'aider à la résolution d'un certain problème au niveau suivant : en fait j'ai un prg en NASM [1


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,045 sec (4)

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