Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    34

    [Assembly SPIM] Concatenare due stringhe

    Ammettendo che io abbia due stringhe, una in $s1 e un'altra in $s2.
    Ho una procedura chiamata Length che mi restituisce la lunghezza di una stringa passata per parametro (quindi prima $s1 e poi $s2).

    Chi riuscirebbe a scrivermi del codice che concatena $s1 e $s2 in $s3?

    in pratica:
    $s1= pippo
    $s2 = pluto
    $s3 = pippopluto

    So che chiedere di scrivermi del codice senza postarne prima è tanto, ma io proprio non riesco malgrado ci abbia provato e mi serve per il 5 giugno.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    34
    codice:
    #------------------------------------------------------
    # procedura: Create
    # parametri:
    #	$a0 -> stringa utente da allocare
    #	$v0 -> lunghezza della stringa da allocare
    #
    # ritorno:
    #	$v0 -> la stringa dinamica
    #
    #------------------------------------------------------
    Create:
    		addi $s0, $ra, 0
    
    		jal Length
    
    		move $t1, $a0 #salvo la stringa
    		move $t2, $v0 #salvo la lunghezza
    
    		#alloca lo spazio in memoria
    		addi $a0, $t2, 0
            	li $v0, 9
            	syscall
    
    		li $t0, 0
    		move $t4, $v0
    loop1:
    		bge $t0, $t2, fineloop1
    		addu $t0, $t0, 1
    		lbu $t5, ($t1)
    		sb $t5, ($t4)
    		addu $t1, $t1, 1
    		addu $t4, $t4, 1
    		j loop1
    fineloop1:	
    
    		addi $v0, $t4, 0
    
    		jr $s0
    #------------------------------------------------------
    Qualcuno sa dirmi come mai questa procedura, che dovrebbe restituirmi una stringa inserita in uno spazio di memoria dinamico, mi restituisce una stringa vuota?

  3. #3
    stai facendo architettura degli elaboratori con Sorrenti?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    34
    No mi spiace. Comunque ho risolto, ma in un modo del tutto diverso quindi è inutile postare. Per i moderatori: potete chiudere/cancellare il post visto che non è di nessuna utilità.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.