Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : tableau avec 8086!help me [ Processeurs / X86 ] (ASBYoucef)

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é 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 , pb mov [di+si], [bx+si] [ par nicographx ] bonjourj'ai un problème : je cherche à faire une instruction de typemov [di+si], [bx+si]mais je ne voit pas comment faire, il me ressort toujours la m Kernel qui n'est pas chargé par le bootloader [ par JB_59 ] Salut tout le monde !Voilà j'ai un problème de chargement de Kernel; j'ai codé un boot loader en asm qui m'affiche la phrase "Chargement du kernel..." probleme avec un bootloader [ par anonyme_man_in_this_world ] salut !! je voudrais coder un bootloader , tous ce compile bien ,je copie / colle le fichier .BIN dans une disquette ,mais lors le redemmarrage d Invertion d'une chaine de caractère. [ par deck_bsd ] Bonjour,Voila je débute en ASM et je veu faire un bête programme qui inverse une chaine de caractère. Je l'ai fait, mais celui-ci, ne va pas vraiment Mov [ par safwensafwen ] Bonsoir,est ce que l'opérateur Mov dans l'exemple: MOV BP,SP , déplace complétement la valeur de SP dans BP ou bien il fait une copie de SP en BP. Si boot secteur [ par henri12 ] salutje viens de decompiler le boot secteur d une disquette de demarrageje voudrais savoir ou puis je mettre 15 octet de code que je veux faire execut Problème avec un code [ par showbiz_hurricanes ] Bonjour Pour un projet universitaire, je dois concevoir un programme de tri en assembleur mais celui ci ne fonctionne pas comme je le voudrai. Le Modifer le vecteur d'interruptions [ par vecchio56 ] Bonjour J'essaie de refaire la source http://www.cppfrance.com/code.aspx?ID=33558 en assembleur (ca consiste à modifier la routine de l'interruption 0 Peut on mieux faire ? [ par spiky31 ] Bonjour Voila j'ai commencé ce matin a programmer en assembleur intel et j'aurais voulu avoir votre avis (Je me considére pas vraiment comme un noob


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.