Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    ma allora è solo lì l'errore? ti posto il codice:

    .data
    Benvenuto: .asciiz " Benvenuto nel programma!\n\n"
    inserire : .asciiz " Inserisci una stringa: "
    risultato: .asciiz " La stringa convertita è: "
    buffer : .space 256

    .text

    uppercase:
    addi $t1,$zero,4
    addi $sp, $sp, -4
    sw $s0, 0($sp)
    lw $t0, 0($a0)
    addi $t0,$zero,97
    slt $t1,$s0,$t0
    beq $t1,$zero, upper
    slt $t4,$t2,$a1
    beq $t4,$zero,esci
    add $t2,$t2,$t2
    lw $s0, 0($sp)
    addi $sp, $sp, 4
    j uppercase


    upper:
    add $t3,$zero,32
    sub $s0,$s0,$t3
    jr $ra

    main:
    li $v0,4
    la $a0,Benvenuto
    syscall
    li $v0,4
    la $a0,inserire
    syscall
    li $v0,8
    la $a0,buffer
    li $a1,256
    syscall
    jal uppercase

    esci:
    li $v0,4
    la $a0,risultato
    syscall
    li $v0,4
    la $a0,buffer
    syscall
    li $v0,10
    syscall
    Debian Sarge 3.01a
    Slackware 10.2

  2. #12
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    quindi l'errore sta solo la?
    Debian Sarge 3.01a
    Slackware 10.2

  3. #13
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    quindi qua cosa cè di sbagliato (oltre all'errore che mi hai detto tu)?

    .data
    inserire : .asciiz " Inserisci una stringa: "
    risultato: .asciiz " La stringa convertita è: "
    buffer : .space 256
    nuova : .space 256

    .text

    uppercase:
    addi $sp, $sp, -4 #new state stack
    sw $s0, 0($sp)
    addi $t2,$zero,4
    add $s0,$a0,$zero #metto il carattere in s0
    addi $t0,$zero,97

    lw $t9, 0($s0)
    slt $t1,$t9,$t0
    beq $t1,$zero, upper
    slt $t4,$t2,$a1 #la stringa è finita?
    beq $t4,$zero,esci #se cosi è esci
    add $t2,$t2,$t2 #altrimenti aumenta il contatore di 4


    lw $s0, 0($sp) #riporta lo stack al vecchio valore
    addi $sp, $sp, 4
    j uppercase


    upper:
    add $t3,$zero,32
    sub $s0,$s0,$t3
    jr $ra


    main:
    li $v0,4
    la $a0,inserire
    syscall
    li $v0,8
    la $a0,buffer
    li $a1,256
    syscall #inserisco la stringa
    jal uppercase

    esci:
    li $v0,4
    la $a0,risultato
    syscall
    li $v0,4
    la $a0,nuova
    syscall

    li $v0,10 #esci dal programma
    syscall
    Debian Sarge 3.01a
    Slackware 10.2

  4. #14
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    mi arrendo: questo è il mio programma:

    .data
    inserire : .asciiz " Inserisci una stringa: "
    risultato: .asciiz " La stringa convertita è: "
    buffer : .space 256
    nuova : .space 256
    .text

    uppercase:
    li $t3,4
    addi $sp, $sp, -4
    sw $s0, 0($sp)
    lw $t0,0($a0)
    addi $t1,$zero,97
    slt $t2,$t0,$t1
    beq $t2,$zero,upper
    slt $t4,$t3,$a1
    beq $t4,$zero,esci
    add $t3,$t3,$t3
    lw $s0, 0($sp)
    addi $sp, $sp, 4
    j uppercase


    upper:
    add $t2,$zero,32
    sub $t0,$t0,$t2
    jr $ra

    main:
    li $v0,4
    la $a0,inserire
    syscall
    li $v0,8
    la $a0,buffer
    li $a1,256
    syscall
    jal uppercase

    esci:
    li $v0,4
    la $a0,risultato
    syscall
    li $v0,4
    la $a0,nuova
    syscall
    li $v0,10
    syscall


    ringrazio tutti coloro che vorranno aiutarmi!
    mille thanks in anticipo! vi supplico, nn so dove sbattere la testa!
    Debian Sarge 3.01a
    Slackware 10.2

  5. #15
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    magari sapere cosa fa aiuta a leggere il sorgente solo dove serve

  6. #16
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    scusa!
    praticamente prende una stringa e tramite uppercase trasforma i caratteri minuscoli in maiuscoli!

    tutto qui!

    ma dove sbaglio?
    Debian Sarge 3.01a
    Slackware 10.2

  7. #17
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    credo di aver corretto ma ancora non mi stampa niente a video (dovrebbe stamparmi la stringa modificata...ma niente)....

    .data
    inserire : .asciiz " Inserisci una stringa: "
    risultato: .asciiz " La stringa convertita è: "
    buffer : .space 256
    nuova : .space 256
    .text

    uppercase:
    lw $t0,0($a0)
    addi $t1,$zero,97
    slt $t2,$t0,$t1
    beq $t2,$zero,upper
    slt $t4,$t3,$a1
    beq $t4,$zero,esci
    li $t3,4
    add $t3,$t3,$t3
    j uppercase

    upper:
    add $t5,$zero,32
    sub $t6,$t0,$t5
    sw $t6,0($a0)
    jr $ra

    main:
    li $v0,4
    la $a0,inserire
    syscall
    li $v0,8
    la $a0,buffer
    li $a1,256
    syscall
    addi $sp, $sp, -4
    sw $s0, 0($sp)
    jal uppercase

    esci:
    lw $s0, 0($sp)
    addi $sp, $sp, 4
    li $v0,4
    la $a0,risultato
    syscall
    li $v0,4
    la $a0,nuova
    syscall
    li $v0,10
    syscall

    ed è ancora sbagliato...
    Debian Sarge 3.01a
    Slackware 10.2

  8. #18
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    lw $t0, 0($a0)     # $t0 = primo carattere di $a0
    addi $t1,$zero,97  # $t1 = 97
    slt $t2,$t0,$t1    # se $t0 >= 97
    beq $t2,$zero,upper# vai upper
    slt $t4,$t3,$a1    # $t3 < $a1 ??
    beq $t4,$zero,esci
    li $t3,4
    add $t3,$t3,$t3
    j uppercase

  9. #19
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    come lo risolveresti tu?
    mi puoi dare una mano a risolverlo..???
    non riesco a capire dove sbaglio: nella funzione oppure quando vado a stampare la stringa?
    Debian Sarge 3.01a
    Slackware 10.2

  10. #20
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    lw $t0, 0($a0)     # $t0 = primo carattere di $a0
    addi $t1,$zero,97  # $t1 = 97
    slt $t2,$t0,$t1    # se $t0 >= 97
    beq $t2,$zero,upper# vai upper
    beq $t0, $zero, esci # fine parola
    addi $a0, $a0, 4   # $a0 a carattere successivo
    jal uppercase
    dovrebbe essere a posto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.