Homework 1
Copiate il programma che trovate nel box qui sotto in un file di testo. Quindi completatelo scrivendo il corpo della funzione
capitalize che deve, preso in input l'indirizzo di una stringa di testo terminata da zero presente in memoria, modificare la stringa trasformando ciascuna parola in essa contenuta in una parola che ha solo il primo carattere maiuscolo e tutti gli altri minuscoli. Ad esempio la stringa:
- PenSo cHe cE la posso fare A svolGere coRRettamente L'Esercizio 1
dovrà essere trasformata e stampata così:
- Penso Che Ce La Posso Fare A Svolgere Correttamente L'esercizio 1
Il programma legge il testo da trasformare (lungo max 100 caratteri) da input, per cui per provarlo potete lanciarlo (usando la GUI o digitando dalla linea di comando: java -jar mars.jar nome_programma.asm) e poi scrivere con la tastiera la frase da trasformare.
- NOTA: il separatore tra parole è SOLO il carattere spazio " " (codice ascii 32)
- NOTA: trasformate solo le lettere a-z e A-Z, non trasformate le altre lettere (numeri, interpunzione e accentate)
#################### inizio del programma ####################
.data
request: .asciiz "Inserire la stringa: "
result: .asciiz "Stringa modificata: "
text: .space 101
space: .ascii " "
.text
.globl main
# programma principale da non modificare
main:
la $a0,request
li $v0,4
syscall
la $a0,text
li $a1,100
li $v0,8
syscall
jal capitalize
la $a0,result
li $v0,4
syscall
la $a0,text
syscall
li $v0,10
syscall
############# funzione da completare col vostro codice #############
capitalize:
#...
##################### fine del programma ####################
Istruzioni per la consegna dell'esercizio:
- rinominate il file usando la convenzione CognomeNome.asm (quindi il file del sig. Cicco Pasticcio sarà CiccioPasticcio.asm)
- inviatelo tramite la pagina di consegna entro la mezzanotte di domenica 12 maggio.
- per inviare dovete essere registrati a twiki.
Punteggio:
- chi fa bene questo esercizio (dove bene vuol dire che funzionerà correttamente su alcune stringhe di test) guadagnerà un punto.
- chi "collaborerà" con altre N persone prenderà invece solo 1/N punti :oops:
--
AndreaSterbini - 04 May 2013