le tri de tableau en mips (assemblée)

im dans une classe d'apprentissage de l'assemblée à l'aide de mips. Je suis en train de travailler sur le tri d'un tableau de nombres et je pense que j'ai la méthode fonctionne correctement, mais un peu de difficulté. Je ne sais pas comment vérifier quand im triés entièrement. Im en utilisant un assez rudimentaire méthode de tri, mais c'est tout ce que nous avons appris jusqu'à présent. Aussi, je ne sais pas comment faire pour générer les numéros de vérifier pour voir si elle est triée. Im utilisé pour Java et de telle sorte assemblée est un peu de me lancer pour un spin. Voici mon code donc loin:

    .text
    .globl main
main:       la  $a0, Array             # sets the base address of the array to $a0
loop:       lw  $t0, 0($a0)             # sets $t0 to the current element in array
            lw  $t1, 4($a0)         # sets $t1 to the next element in array
            blt $t1, $t0, swap      # if the following value is greater, swap them
            addi    $a0, $a0, 4     # advance the array to start at the next location from last time
            j   loop                  # jump back to loop so we can compare next two elements

swap:       sw  $t0, 4($a0)         # store the greater numbers contents in the higher position in array (swap)
            sw  $t1, 0($a0)         # store the lesser numbers contents in the lower position in array (swap)
            li  $a0, 0                 # resets the value of $a0 back to zero so we can start from beginning of array
            j   loop                  # jump back to the loop so we can go through and find next swap

            .data

Array:      .word   14, 12, 13, 5, 9, 11, 3, 6, 7, 10, 2, 4, 8, 1 

merci pour toute aide les gars!

  • Ressemble pour moi comme une sorte de tri à bulles. Pourquoi avez-vous sauter au début de la matrice après la permutation? Il suffit de garder la permutation des éléments aussi longtemps que arr[i] > arr[i+1], après chaque itération, un élément de plus est dans sa position finale à la fin du tableau. Avec cette approche, on répète n fois (où n est la longueur du tableau), et vous êtes assuré d'avoir le tableau trié à la fin.
  • Aussi, à propos de l'écriture de sortie de l'utilisateur, peut-être que ce sera vous aider: forum.codecall.net/topic/...
  • eh bien, si je devais continuer, au lieu d'espérer de retour au début du tableau comment recommandez-vous que je sais à la fin du tableau, et comment pourrais-je savoir quand il est trié?
InformationsquelleAutor erp | 2013-10-06