Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - Assembly MIPS
Forum - Altri Linguaggi - Assembly MIPS

Avatar
Sparvier0 (Normal User)
Newbie


Messaggi: 19
Iscritto: 25/02/2011

Segnala al moderatore
Postato alle 15:00
Venerdė, 25/02/2011
Ciao,

sto provando a fare qualche esperimento con assembly MIPS.

Codice sorgente - presumibilmente Delphi

  1. .data
  2. arr: .word 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768
  3. prompt: .asciiz "\n >> "
  4. riga: .asciiz "\n"
  5. .text
  6. .globl main
  7. main:
  8.         la $a0,arr              # Carico indirizzo di memoria array
  9.         li $t0,15
  10. loop:  
  11.         li $t2,4                # Carica il valore 4 in $t2
  12.         mult $t0,$t2    # Moltiplica indice *4
  13.         mflo $t3                # Prendi il risultato della moltiplicazione e ponilo in $t3
  14.         lw $t1,$t3($a0) # Carica in $t1 il valore corrispondene a i*4
  15.        
  16.         li $v0,4
  17.         la $a0,prompt
  18.         syscall                 # Stampa a video >>
  19.        
  20.         move $a0,$t1    # Poni in $a0 il valore presente nella cella dell'array all'indice i*4
  21.        
  22.         li $v0,1               
  23.         syscall         # Stampa a video valore
  24.        
  25.         li $v0,4
  26.         la $a0,riga            
  27.         syscall
  28.        
  29.         la $a0,arr              # Carico indirizzo memoria array
  30.         addi $t0,$t0,-1 # Incremento contatore
  31.         bgez $t0,loop   # Salto se $t0 >= 0
  32.        
  33.         li $v0,10
  34.         syscall



Ovviamente l'istruzione lw $t1,$t3($a0)     restituisce un errore in quanto, da quel che ho capito, si aspetta un intero e non un registro.

Esiste un modo per passargli un intero che sia frutto della computazione mult $t0,$t2    # Moltiplica indice *4 ?

In caso negativo, come posso risolvere?

Grazie!

Ultima modifica effettuata da Sparvier0 il 25/02/2011 alle 15:01
PM