Conversion hexa -> str en assembleur MIPS

Conversion hea -> str en ASM MIPS

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