|
|
|
|
La macchina del caffè |
|
|
 Stampa |
Torna Indietro |
| Linguaggio: Assembler MIPS |
Autore: Alby Raghi |
Data Archiviazione: 19/05/2007 |
.data vettore: .word 10,5,10,20,50,100,200,5000 # tipo di monete ,sono 6: 5 cent,10 cent ecc.... msg1: .asciiz " > " msg2: .asciiz " > coin reijected" msg3: .asciiz " > coin accepted: " msg4: .asciiz " > inserito: " msg5: .asciiz " >posizione: " msg6: .asciiz " [ OK ] seleziona caffè: "
.text
main:
li $v0,4 la $a0,msg1 syscall
li $v0,5 syscall li $s1,0 # metto di defoult la posizone del vettore=0
move $s0,$v0 move $t5,$s0 #salvo in t5 il valore la $s2,vettore lw $s1,0($s2) beqz $s1,no #se nn esiste un vettore si ferma li $s1,1 #metto uguale a 1
loop: li $t4,6 addi $s2,4
lw $s3,0($s2) beq $s0,$s3,fine addi $s1,1 beq $s1,$t4,no b loop
no: li $v0,4 la $a0,msg2 syscall b out
out:
j main
fine: li $t8,90 #assegno costo caffè li $t7,91 # limite da nn superare add $t9,$t9,$t5 #do il valore del credito a t9 beq $t9,$t8,bibita # 90c giusti vai alla consegna bgt $t9,$t7,troppo #+ di 90 dai il resto
li $v0,4 la $a0,msg3 syscall li $v0,4 la $a0,msg5 syscall li $v0,1 move $a0,$s1 syscall li $v0,4 la $a0,msg4 syscall li $v0,1 move $a0,$t9 syscall b out
bibita: li $v0,4 la $a0,msg6 syscall li $v0,4 la $a0,msg3 syscall li $v0,4 la $a0,msg5 syscall li $v0,1 move $a0,$s1 syscall li $v0,4 la $a0,msg4 syscall li $v0,1 move $a0,$t9 syscall
li $t9,0 #reseto i valori li $t5,0 b out
troppo: # superando i 90 cents la macchina terra il resto in memoria...
sub $t9,$t9,$t8 #togli 90 al valore ,poi torna a capo col resto li $v0,4 la $a0,msg6 syscall li $v0,4 la $a0,msg3 syscall li $v0,4 la $a0,msg5 syscall li $v0,1 move $a0,$s1 syscall li $v0,4 la $a0,msg4 syscall li $v0,1 move $a0,$t9 syscall
j main
#by Raghi#
|
|
Note:
chiede di inserire interi che appartengono all'array :10,20,50,100,200,500
(come se fossero i centesimi)
li somma, quando arriva a novanta fa valore inserito - 90 = resto + caffè
se il resto > 0 lo accredita per la successiva chiamata…
|
Codice testato con: Spim per Windows
Versione: 1.0
Sito Produttore: http://www.assembler.com/
|
|
|
Chi c'è online
|
In questo momento ci sono
10
Visitatori
|
|