Inverser 1 tableau en assembleur 80x86

masterfreez -  
 le père -
Bonjour,jé bezoin de savoir comment inverser 1 tableau en assembleur ... svp veuillez étr préci pask je début ds le domaine ...merci d'avanc
Configuration: Windows XP
Firefox 2.0.0.9

3 réponses

  1. le père
     
    Je t'ai donné un coup de pouce, mais ne compte pas sur moi pour faire tout ton boulot.
    As-tu fait l'effort d'essayer ce que je t'ai dit ? Je viens de voir qu'il y a une erreur dedans.
    1
  2. le père
     
    le principe que je te propose est de charger dans AL le caractère de début du tableau et dans AH celui de la fin, puis de ranger AL à la fin du tableau et AH au début. On recommence sur la moitié du tableau :

    MOV CX,6 ; nombre de boucles
    MOV SI, TAB ; début du tableau
    MOV DI,TAB+14 ; fin du tableau
    BCL1:
    MOV AL,[SI]
    MOV AH,[DI]
    MOV [DI],AL
    MOV [SI],AH

    INC SI
    DEC DI

    LOOPNZ BCL1
    0
    1. masterfreez
       
      merci pr le truc pr inverser le tableau !!!
      si vs pouver me montrer comment afficher le tableau tab , comment tirer son maximum, et comment le trier ça serait génial et trooooo gentil de votr pars !!!!!!!!!!!
      vrmt vs me rendez un grand service ........
      je vous attend ...
      0
  3. le père
     
    Bonjour,

    Toi aussi, soit précis dans ta demande : tu veux qu'on fasse des exercices à ta place non ?
    -1
    1. masterfreez
       
      oui c ça ,si ça vs derange po biensur ..
      alors voila j'ai un vecteur d'entier déclaré ds data segment é on me demande de faire le tri croissant de ce vecteur et de l'afficher ...
      jme suis cassé la tét mais jy arrive po ..en plus j'en ai bezoin pr dem1 ..
      SOS !!!!!!!!!!!!!!!
      0
      1. le père > masterfreez
         
        Peux-tu montrer ce que tu as commencé à faire ?
        0
      2. masterfreez > le père
         
        data segment
        msg1 db " entrer un entier entre 1 et 4 ",10,13,"$"
        msg2 db " fin du programme ",10,13,"$"
        TAB db 15 dup (1,11,10,0,50,42,4,1,13,1,33,13,19,0,14)
        data ends

        pile segment stack
        db 256 dup (?)
        pile ends

        code segment
        assume cs:code , ds:data , ss:pile

        main:
        mov ax,data
        mov ds,ax

        faire:
        mov dx,offset msg1
        mov ah,09
        int 21h

        mov ah,08
        int 21h

        cmp al,31h
        jl faire

        cmp al,34h
        ja faire

        cmp al,31h
        je aff

        cmp al,32h
        je max

        cmp al,33h
        je tri

        cmp al,34h
        je sorti


        sorti:
        mov dx,offset msg2
        mov ah,09
        int 21h
        mov ah,4ch
        int 21h

        aff:


        tri :

        max :



        fin:mov ah,4ch
        int 21h






        mov ah,4ch
        int 21h
        code ends
        end main
        0