Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
689 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Assembleur MIPS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Assembleur MIPS

n°1054849
marielou
Posté le 21-04-2005 à 10:03:54  profilanswer
 

Bonjour,  
je suis étudiante en informatique et je dois travailler sur un devoir concernant l'assembleur. C'est la partie la plus hardue du cursus. J'ai compris le code. Mais je n'arrive pas à mettre en évidence l'algorithme dans le programme qui m'est présenté.  
Je vois qu'il y a des conditions (bge, bne, ..) mais je ne vois pas comment s'effectue le tri.  
Le prof a jalonné le parcours du code avec des commentaires qui aident, mais, je serais ravie de trouver une aide de quelqu'un féru d'assembleur...
Marielou
 
.data
str: .asciiz "\n"
str1: .asciiz "|"
.align 2
# T est le tableau que l'on trie'
T: .word 6
.word 5
.word 4
.word 3
.word 2
.word 1
.word -0
.word -1
.word -2
.word -3
.text
.align 2
.globl main
.ent main
main:
.frame $fp,24,$31
.mask 0xc0000000,-4
.fmask 0x00000000,0
subu $sp,$sp,24
sw $31,20($sp)
sw $fp,16($sp)
move $fp,$sp
# On affiche le vecteur en entree du probleme
la $5,T
li $6,1
suite0:lw $a0, ($5)
li $v0, 1
syscall
li $v0, 4 # system call code for print_str
la $a0, str1 # address of string to print
syscall # print the string
addiu $5,$5,4
addiu $6,$6,1
bne $6,11,suite0
li $v0, 4 # system call code for print_str
la $a0, str # address of string to print
syscall # print the string
syscall
# On commence le tri a partir d'ici
la $5,T
li $6,1
deb:
lw $8,($5) # le min
lw $14,($5)
la $15, ($5)
move $9,$6
addiu $9, $9, 1
la $10, ($5)
la $11, ($5)
addiu $10, $10, 4
suite:
lw $12, 0($10)
blt $8, $12, suite1
lw $8, ($10) # sauvegarde du nouveau min
la $16, ($10) # sauvegarde adresse du nouveau min
# move $a0, $8
# li $v0, 1
# syscall
# li $v0, 4 # system call code for print_str
# la $a0, str1# address of string to print
# syscall # print the string
# la $a0, str # address of string to print
# syscall # print the string
suite1:addiu $10, $10, 4
add $9, $9, 1
bne $9, 11, suite
bgt $8, $14, suite2
bge $8, $14, suite2
move $a0, $8
li $v0, 1
syscall
li $v0, 4 # system call code for print_str
la $a0, str1 # address of string to print
syscall # print the string
move $a0, $14
li $v0, 1
syscall
li $v0, 4 # system call code for print_str
la $a0, str # address of string to print
syscall # print the string
sw $8, ($15)
sw $14, ($16)
suite2: addiu $5, $5, 4 # on passe a l'element suivant
addiu $6, $6, 1 # jusqu'au 9 eme
bne $6,10, deb
# on afficher le vecteur de sortie
li $v0, 4 # system call code for print_str
la $a0, str # address of string to print
syscall # print the string
suite33:la $5,T
li $6,1
suite3: lw $a0, ($5)
li $v0, 1
syscall
li $v0, 4 # system call code for print_str
la $a0, str1 # address of string to print
syscall # print the string
addiu $5,$5,4
addiu $6,$6,1
bne $6,11,suite3
li $v0, 4 # system call code for print_str
la $a0, str # address of string to print
syscall # print the string
j $31
.end main
+*+*+*++*+*+*+*+*+*+*+*+EXEMPLES D'EXECUTION+*+*+*+*+*+*+*+*+*+*+*+*+
-6|-5|-4|-3|-2|-1|0|1|2|3|
-6|-5|-4|-3|-2|-1|0|1|2|3|
+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
6|5|4|3|2|1|0|-1|-2|-3|
-3|6
-2|5
-1|4
0|3
1|2
-3|-2|-1|0|1|2|3|4|5|6|
+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
2|-5|-1|-3|7|8|9|10|-4|5|
-5|2
-4|2
-3|-1
2|7
5|8
7|9
8|10
-5|-4|-3|-1|2|5|7|8|9|10|

mood
Publicité
Posté le 21-04-2005 à 10:03:54  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Assembleur MIPS

 

Sujets relatifs
AssembleurIntegration de code assembleur sous Turbo C++ 3
programmation d'interruption sous assembleurComment appelle-t-on en C/C++ une routine assembleur?
L'assembleur, plus rapide que le C/C++ ?Info pour assembleur 68K ?
gcc et code assembleurde la music avec assembleur
[MIPS] Recoder sprintfHelp ! Compréhension de programme en assembleur
Plus de sujets relatifs à : Assembleur MIPS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR