Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892

    [Assembly MIPS] Ottenere stringa da stringhe

    Ciao a tutti, cm al solito ho bisogno di voi!

    Allora, vengo subito al sodo!
    Devo fare un esercizio in cui date 2 stringhe ne faccio una terza che contiene i caratteri di tutte e due!

    Esempio: 1° stringa: ciao; 2°stringa: CIAO
    la 3° stringa dovrebbe essere: cCiIaAoO

    ho già buttato qualcosa! Ecco:


    .data
    str1: .asciiz "Inserisci la prima stringa: "
    str2: .asciiz "Inserisci la seconda stringa: "
    buf1: .space 16
    buf2: .space 16
    buf3: .space 16
    outp: .asciiz "La stringa risultante è: "

    .text
    .globl main

    main:
    li $v0,4 #codice stampa stringa
    la $a0,str1 #stringa
    syscall #stampa
    li $v0,8 #codice leggi stringa
    la $a0,buf1 #indica dove partire con la memoria
    li $a1,16 #indica dove metterla
    syscall #leggi la stringa
    li $v0,4 #codice stampa stringa
    la $a0,str2 #stringa
    syscall #stampa
    li $v0,8 #codice leggi stringa
    la $a0,buf2 #indica dove partire con la memoria
    li $a2,16 #indica dove metterla
    syscall #leggi la stringa
    j invert #vai alla procedura che inverte
    jr $ra #uscita

    invert:
    la $t0,buf1 #t0=puntatore 1 char 1 stringa
    la $t1,buf2 #t1=puntatore 1 char 2 stringa

    controlla:
    lbu $t2,($t0) #in t2 carattere 1 stringa
    lbu $t3,($t1) #in t3 carattere 2 stringa
    sgt $t4,$t2,$zero
    sgt $t5,$t3,$zero
    add $t6,$t4,$t5
    bnez $t6,componi
    sw $t6,($a3)
    j esci

    componi:
    lbu $t2,($t0) #in t2 carattere 1° stringa
    sb $t2,($t9)
    addi $t2,$t2,1
    addi $t9,$t9,1

    componi2:
    lbu $t3,($t1) #in t3 carattere 2 stringa
    sb $t3,($t9)
    addi $t3,$t3,1
    addi $t9,$t9,1
    j controlla

    esci:
    li $v0,4
    la $a0,outp
    syscall
    li $v0,4
    la $a3,buf3
    syscall
    Debian Sarge 3.01a
    Slackware 10.2

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    e cosa succede?

  3. #3
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    mi da : "Bad data address" "Error occurred and ignored" e poi va in loop ripetendo sempre questa scritta.

    Magari hai una idea su come posso fare. Avevo pensato di usare registri come offset delle store word e usare una sola procedura che scorreva le stringhe fino al carattere finale ma non credo che si possa fare!
    Debian Sarge 3.01a
    Slackware 10.2

  4. #4
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    help me please!
    Debian Sarge 3.01a
    Slackware 10.2

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il codice che hai scritto non riesco a capirlo

    io farei
    un ciclo sulla prima stringa e copio ogni carattere in un nuova stringa dopo aver controllato che non lo contenga
    un ciclo sulla seconda stringa allo stesso modo

    credo che basti una procedura che scorre una stringa che gli arriva in input e una che controlla se un carattere è già stato copiato

  6. #6
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    e se le 2 stringhe sono uguali ma composte 1 da caratteri minuscoli e l'altra da caratteri maiuscoli ???

    cioè deve esserci qualcosa di implementabile con una sola procedura!

    Pensa, questo è un testo d'esame!
    Bah! Le esercitazioni era 10 volte più semplici!

    Altre idee?
    Debian Sarge 3.01a
    Slackware 10.2

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    puoi fare con una sola procedura ma sarebbe illeggibile
    dicevo una roba così
    copia:
    # $a0 = carattere da copiare
    # $a1 = indirizzo della stringa

    controlla:
    # $a0 = carattere da confrontare
    # $a1 = indirizzo della stringa
    # $v0 = 1 se il carattere non esiste

    nel main un ciclo sulle due stringhe che chiama copia

  8. #8
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    e se le 2 stringhe sono uguali ma composte 1 da caratteri minuscoli e l'altra da caratteri maiuscoli ???
    Debian Sarge 3.01a
    Slackware 10.2

  9. #9
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    i caratteri minuscoli e maiuscoli hanno codici diversi

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.