Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Originariamente inviato da ant_alt
    certo che non concatena, dove hai visto che ho valutato questo?

    se mi dici qual è l'istruzione che stampa aggiusto il codice

    devi stampare $t3 prima dell'istruzione add $t1,$t3 $0
    #**************************************
    #Convertire in binario un valore decimale
    #Davide Gangale
    #V°A°
    #*************************************

    #--------------------------->area dati<----------------
    .data
    mex: .asciiz" il valore convertito e': "
    Buffer: .word 54

    #------------------------->area programma<--------------

    .text
    .globl main

    main: la $t0,Buffer #caricamento buffer
    li $t1,0 #azzeramento registri
    li $t2,2
    li $s1,0
    li $s2,0
    li $t3,0


    lw $t1,($t0) #estrazione valore buffer
    loop: div $t1,$t2 #divisione per 2
    mfhi $s1 #resto in s1
    mflo $t3 #quoziente in t3
    beq $t3,$s2 fine #confronto
    add $t1,$t3 $0 #sostituisco il dividendo col quoziente appena ottenuto
    j loop
    fine:
    lw $a0,($s1)
    li $v0,1
    syscall

    li $v0,4 #caricamento codice print_string
    la $a0,mex #puntatore alla stringa
    syscall #chiamata di sistema

    li $v0, 1 #codice print_int
    move $a0,$t3
    syscall

    li $v0,10
    syscall

    nel registro s1 dove c'è il resto le cifre binarie appaiono...però ogni volta che fa la divisione li sostituisce...invece io dovrei tipo concatenare i valori...e stamparli a video una volta finito

  2. #12
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    scusa ma forum di ubuntu ti hanno fatto vedere SLL che è la chiave di tutto perchè non l'hai detto?

    inoltre non ho ancora capito come stampi..quali sono le istruzioni?

    codice:
    #**************************************
    #Convertire in binario un valore decimale 
    #Davide Gangale
    #V°A°
    #*************************************
    
    #--------------------------->area dati<----------------
    .data
    mex: .asciiz" il valore convertito e': "
    Buffer: .word 54
    
    #------------------------->area programma<--------------
    
    .text
    .globl main
    
    main: la $t0,Buffer #caricamento buffer
    li $t1,0 #azzeramento registri
    li $t2,2
    li $s1,0 
    li $s2,0
    li $t3,0
    li $t4,0
    
    
    lw $t1,($t0) #estrazione valore buffer
    loop: div $t1,$t2 #divisione per 2
    mfhi $s1 #resto in s1
    mflo $t3 #quoziente in t3
    beq $t3,$s2 fine #confronto
    add $t4 $t4 $s1
    sll $t4 $t4 2
    add $t1,$t3 $0 #sostituisco il dividendo col quoziente appena ottenuto 
    j loop
    fine:
    lw $a0,($s1)
    li $v0,1
    syscall 
    
    li $v0,4 #caricamento codice print_string
    la $a0,mex #puntatore alla stringa
    syscall #chiamata di sistema
    
    li $v0, 1 #codice print_int
    move $a0,$t3 
    syscall
    
    li $v0,10
    syscall
    prova così, ma devi stampare $t4

  3. #13
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    @DaDiXxX: io ti ho linkato il regolamento qualche post più su, invitandoti a leggerlo... forse che qualcosa del punto 6 non ti è chiaro? Continui a postare il codice senza usare gli appositi tag rendendolo palesemente illeggibile...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.