.data 0x10010000 # force at 0x1001 0000 .space 256 # array of 256 caracters at .data + 0 .ascii "Avec ses quatre dromadaires\n" .ascii "Don Pedro d'Alfaroubeira\n" .ascii "Courut le monde et l'admira.\n" .ascii "Il fit ce que je voudrais faire\n" .ascii "Si j'avais quatre dromadaires.\n" .byte 0 .text # .text = code lui $s0, 0x1001 # upper immediate of data segment addiu $s1, $s0, 256 # $s1 <- poeme addiu $s2, $s0, 0 # $s2 <- frequences # for(s1 = poeme; s1[0] != 0; s1 ++) { # freq[s1[0]] ++; # } _lcf: lbu $a0, ($s1) # $a0 <- s1[0] # if(s1[0] == 0) goto end beq $a0, $zero, _alcf # freq[s1[0]] ++ addu $t0, $s2, $a0 # $t0 <- freq + s1[0] lbu $t1, ($t0) # $t1 <- freq[s1[0]] addiu $t1, $t1, 1 # $t1 <- freq[s1[0]] + 1 sb $t1, ($t0) # freq[s1[0]] ++ addiu $v0, $zero, 11 # $v0 <- 11 (print character in $a0) syscall # s1++ addiu $s1, $s1, 1 j _lcf _alcf: # exit program addiu $v0, $zero, 10 syscall