Κυριακή 19 Αυγούστου 2012

Δευτέρα 2 Απριλίου 2012

do while t1<=10

.text 0x00400000
li $t1,1

do:
li $v0,4
la $a0,msg1
syscall
addi $t1,$t1,1
ble $t1,10,do

li $v0,10
syscall

.data
msg1: .asciiz "my message in \n"

/*
1. Αναθέτουμε την τιμή '1' στην μεταβλητή '$t1'
2. Εμφανίζει το μήνυμα 'my messege in' από το .data

3. Κάνει την πράξει '$t1+1'
4. Ελέγχει αν το
'$t1' είναι <= 10, αν είναι θα συνεχίσει την επανάληψη.
-------------------------------------------------------------------
Με άλλα λόγια θα εμφανίσει 10 φορές το μήνυμα
my messege in

my messege in
my messege in
my messege in
my messege in
my messege in
my messege in
my messege in
my messege in
my messege in
-------------------------------------------------------------------
*/

/*
Μαύρο = Αρχή/Τέλος Προγράμματος
Μπλε = Εμφάνιση κειμένου από το .data
Μπλε ανοιχτό = Εμφάνιση τιμής τις μεταβλητής
Κόκκινο = Εισαγωγή τιμής σε μεταβλητή
Πράσινο = Πράξεις
Καφέ = Κείμενα για εμφάνιση (.data)
Λαδί = Εντολή επανάληψης
Μοβ = Ανάθεση τιμής
*/

Δευτέρα 19 Μαρτίου 2012

Subtraction

.text 0x00400000

li $v0,4
la $a0, msg1
syscall

li $v0,5
syscall
move $t0,$v0

li $v0,5
syscall
move $t1,$v0

li $v0,5
syscall
move $t2,$v0

sub $t3,$t0,$t1
sub $t3,$t3,$t2

li $v0,1
move $a0,$t0
syscall

li $v0,4
la $a0,msg2
syscall

li $v0,1
move $a0,$t1
syscall

li $v0,4
la $a0,msg2
syscall

li $v0,1
move $a0,$t2
syscall

li $v0,4
la $a0,msg3
syscall

li $v0,1
move $a0,$t3
syscall

li $v0,10
syscall

.data
msg1: .asciiz "Gave three numbers: "
msg2: .asciiz "-"
msg3: .asciiz "="

/*
1. Το πρόγραμμα εμφανίζει το "Gave three numbers:" και δίνεις τρεις αριθμούς.
2. Μετά κάνεις αφαίρεση τους τρεις αριθμούς δύο δύο δηλαδή:
πρώτος αριθμός - δεύτερος αριθμός = αποτέλεσμα
αποτέλεσμα - τρίτος αριθμός = αποτέλεσμα
3. Εμφανίζει το πρώτος αριθμός-δεύτερος αριθμός-τρίτος αριθμός=αποτέλεσμα
π.χ.
πρώτος αριθμός=10
δεύτερος αριθμός=3
τρίτος αριθμός=5
θα εμφανίσει 10-3-5=2
*/

/*
Μαύρο = Αρχή/Τέλος Προγράμματος
Μπλε = Εμφάνιση κειμένου από το .data
Μπλε ανοιχτό = Εμφάνιση τιμής τις μεταβλητής
Κόκκινο = Εισαγωγή τιμής σε μεταβλητή
Πράσινο = Πράξεις
Καφέ = Κείμενα για εμφάνιση (.data)
*/

Sum

.text 0x00400000

li $v0,4
la $a0, msg1
syscall

li $v0,5
syscall
move $t0,$v0

li $v0,4
la $a0, msg2
syscall

li $v0,5
syscall
move $t1,$v0


add $t2,$t0,$t1

li $v0,1
move $a0,$t0
syscall

li $v0,4
la $a0,msg3

syscall
li $v0,1
move $a0,$t1
syscall

li $v0,4
la $a0,msg4
syscall

li $v0,1
move $a0,$t2
syscall

li $v0,10
syscall

.data
msg1: .asciiz "
Gave first number: "
msg2: .asciiz "
Gave second number: "
msg3: .asciiz "+"
msg4: .asciiz "="

/*
1.Το πρόγραμμα θα εμφανίσει "
Gave first number:" και δίνεις τον πρώτο αριθμό.
2. Μετά θα εμφανίσει το "Gave second number:" και δίνεις τον δεύτερο αριθμό.
3. Μετά κάνεις την πράξει της πρόσθεσης ανάμεσα στον πρώτο και δεύτερο αριθμό.
4. Στο τέλος εμφανίζει "πρώτος αριθμός+δεύτερο αριθμό=αποτέλεσμα"
π.χ. πρώτος αριθμός = 4
δεύτερος αριθμός =9
4+9=13
*/

/*
Μαύρο = Αρχή/Τέλος Προγράμματος
Μπλε = Εμφάνιση κειμένου από το .data
Μπλε ανοιχτό = Εμφάνιση τιμής τις μεταβλητής
Κόκκινο = Εισαγωγή τιμής σε μεταβλητή
Πράσινο = Πράξεις
Καφέ = Κείμενα για εμφάνιση (.data)
*/