Conversion d'un nombre en hexa en sa representation sur une string pour proc MIPS (xspim)
.text .globl __start __start: li $6,0x5432ABCD ; <=> $6=n:=0x5432ABCD la $11,lab_resultat; Charge l'adresse de lab_resultat dans $11 addi $11,$11,2 ; <=> $11=ps:=&s[2] ori $5,$0,32 ; <=> $5=i:=32 la $8,table; Charge l'adresse de table dans $8 encore: addi $5,$5,-4 ; <=> i:=i-4 srlv $7,$6,$5 ; <=> q=$7, q:=n>>i andi $7,$7,0x0F ; <=> q=(n>>i)&0x0F add $9,$8,$7 ; $9:=adresse de table[q](@table[q]) lb $10,0($9) ; Charge le char de la table de conversion sb $10,0($11) ; *ps=$10 addi $11,$11,1 ; ps++ bgtz $5,encore ; Si i>0 va au label encore: la $4,lab_resultat ; ori $2,$0,4 ; Syscall 4 : Affichage d'un asciiz a l'ecran syscall ori $2,$0,10 ; Syscall 10 : On quitte le programme syscall .data table: .asciiz "0123456789ABCDEF" ; Chaine de caractère pour la conversion lab_resultat: .asciiz "0x--------" ; Chaine destinataire du nombre converti