PDA

Visualizza la versione completa : Numeri primi in assembly mips


luca93abc
16-02-2015, 09:57
Buongiorno a tutti. Ho provato a scrivere una breve routine che dovrebbe identificare se un numero inserito è primo oppure no. Eccola qua:

.data
numeri: .byte 0x07
prm:
.text
prec: la $t0, numeri
carica: lb $t1, ($t0)
add $t0, $t0, 1
move $t4, $zero
addi $t4, $t4, 1
primi: addi $t4, $t4, 1
div $t1, $t4
mfhi $t3
beq $t4, $t1, succ
beq $t3, $zero, fine
bne $t3, $0, primi
succ: la $t2, prm
sw $t1, 4($t2)
jal fine #Trovato numero primo
fine: j fine

Il codice viene eseguito praticamente tutto, solo che all'etichetta "succ", al momento di salvare la word in memoria mi viene restituito errore, cosa che non avviene se sostituisco l'istruzione con sb, ottenendo però risultati indesiderati. In altri casi la store word funzionava, ma in questo caso no. Non mi spiego francamente il perchè. Non dovrebbe estendere il segno?

Loading