-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcw1.asm
86 lines (77 loc) · 1.29 KB
/
cw1.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#kalkulator
.data
dodawanie: .word 1
prompt: .asciiz "\nPodaj kod dzialania oraz trzy liczby : "
prompt2:.asciiz "\nCzy chesz kontynuowac?"
prompt3:.asciiz "\nPodaj liczbe b :"
prompt4:.asciiz "\nPodaj liczbe c :"
prompt5:.asciiz "\nPodaj liczbe d :"
prompt6:.asciiz "\nWynik dzialania :"
.text
main: #wyświetl komunikat pierwszy
li $v0,4
la $a0,prompt
syscall
#wczytaj kod działania
li $v0,5
syscall
move $t0,$v0
#wyświetl komunikat 3
li $v0,4
la $a0,prompt3
syscall
#wczytaj pierwszą liczbę
li $v0,5
syscall
move $t1,$v0
#wyświetl komunikat 4
li $v0,4
la $a0,prompt4
syscall
#wczytaj drugą liczbę
li $v0,5
syscall
move $t2,$v0
#wyświetl komunikat 5
li $v0,4
la $a0,prompt5
syscall
#wczytaj trzecią liczbę
li $v0,5
syscall
move $t3,$v0
#warunek wboru działania
beq $t0,1,pierwszy
beq $t0,2,drugi
beq $t0,3,trzeci
Fin:
#wydrukuj wynik
#li $v0,4
#la $a0,prompt6
#syscall
move $a0,$t7
li $v0,1
syscall
#wyświetl komunikat 2
li $v0,4
la $a0,prompt2
syscall
#wczytaj czy chce kontynuować
li $v0,5
syscall
move $t5,$v0
#warunek na kontynuowanie
beq $t5,1,main
#end
li $v0,10
syscall
#działania:
pierwszy: add $t1,$t1,$t2
mul $t7,$t1,$t3
b Fin
drugi: sub $t1,$t1,$t2
div $t7,$t1,$t3
b Fin
trzeci: sub $t1,$t1,$t2
add $t7,$t1,$t3
b Fin