Écrire un programme en langage assembleur pour trier les nombres suivants, à l'aide du tri à bulles, dans l'ordre décroissant signé : -10, -30, -25, 50, 15, 20, 35, 40, 45, 0 ?

4 Réponses


  • Ecrivez un programme en langage assembleur pour trier les nombres suivants, en utilisant le tri à bulles, dans l'ordre décroissant signé :

    -10, -30, -25, 50, 15, 20, 35, 40, 45, 0

    C'est-à-dire à la fin de votre programme , les nombres doivent être dans l'ordre suivant :

    50, 45, 40, 35, 20, 15, 0, -10, -25, -30
  • Faites vos
    devoirs vous-même Allez à la page 37 des documents CS401 et vous obtiendrez de l'aide là-bas.

    En ce qui concerne, l'
    instructeur CS401
  • Écrivez le programme d'assemblage pour saisir 3 nombres puis ajoutez les nombres et calculez la moyenne arrondie, imprimez le total et la moyenne?
  • Données : Dw -10, -30, -25, 50, 15, 20, 35, 40, 45, 0
    swap : Db 0

    bubblesort : Dec cx ;dernier élément non comparé
    shl cx,1

    mainloop : Mov si,0 ;initialiser index du tableau à zéro
    mov word [swap],0 ;reste swap flage à aucun swap

    innerloop: Mov ax,[bx+si] ;charge numéro dans ax
    cmp ax,[bx+si+2] ;comparer avec le numéro suivant
    jl noswap ;pas d'échange si déjà en ordre



    mov dx,[bx+si+2] ;charger le deuxième élément dans dx
    mov [bx+si],dx ;stocker le premier nuber dans le deuxième
    mov [bx+si+2],ax ;stocker le deuxième numéro dans le premier
    mot [swap],1 ;

    signaler qu'un échange a été effectué noswap : ajouter si,2 ;faire avancer si à l'index suivant
    cmp si,cx ;sommes-nous enfin indexé
    jle innerloop ;sinon cmpare les deux prochains

    cmp word [swap],1 ;vérifie si un échange a été fait
    jnl mainloop ;si oui fais une autre passe

    ret ;retourne d'où nous venons

    start: Mov bx,data ;envoyer le début du tableau dans bx

    mov cx,10 ;envoyer le nombre d'éléments dans cx
    appeler bubblesort ;appeler notre sous-programme

Ecrivez votre réponse

Votre réponse apparaîtra après modération