Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- ileinstrukcji: .asciiz "Podaj ilosc instrukcji do sprawdzenia : \n"
- wpiszinstrukcje: .asciiz "Instrukcja : \n"
- buffer: .space 20
- iloscinstrukcji: .space 20
- udalo: .asciiz "udalo sie \n"
- jestblad: .asciiz "Podana instrukcja jest bledna\n"
- .text
- main:
- la $a0,ileinstrukcji
- li $v0,4
- syscall
- li $v0,5
- syscall
- add $t0,$v0,$zero
- add $t3,$zero,$zero
- add $t8,$zero,$zero
- instrukcja:
- add $t4,$zero,$zero
- add $t5,$zero,$zero
- add $t6,$zero,$zero
- add $t7,$zero,$zero
- la $a0,wpiszinstrukcje
- li $v0,4
- syscall
- li $v0,8
- la $a0,buffer #zaladuj do t0 ile instrukcji przyjac
- li $a1,20
- syscall
- add $t1,$zero,$zero
- loop:
- lb $t2,buffer($t1)
- beq $t2,65,A
- beq $t2,74,J
- beq $t2,77,M
- beq $t2,78,N
- #beq $t0,iloscinstrukcji,koniec
- j blad
- A:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,68,D1
- j blad
- D1:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,68,D2
- j blad
- D2:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,73,I
- beq $t2,32,spacja3cyfry
- j blad
- I:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,32,spacjaTrzyCyfryDWA
- j blad
- spacja3cyfry:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra1z3
- j blad
- cyfra1z3:
- add $t5,$t5,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,44,przecinek1z3
- j blad
- przecinek1z3:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra2z3
- j blad
- cyfra2z3:
- add $t6,$t6,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,44,przecinek2z2
- j blad
- przecinek2z2:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra3z3
- j blad
- cyfra3z3:
- add $t7,$t7,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- j blad
- spacjaTrzyCyfryDWA:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfry1z3v2
- j blad
- cyfry1z3v2:
- add $t5,$t5,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,44,przecinek1z3v2
- j blad
- przecinek1z3v2:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra2z3v2
- j blad
- cyfra2z3v2:
- add $t6,$t6,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,44,przecinek2z2v2
- j blad
- przecinek2z2v2:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra3z3v2
- j blad
- cyfra3z3v2:
- add $t7,$t7,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- addi $t2,$t2,-48
- blt $t2,10,cyfra3z3v2
- j blad
- N:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,79,oo1
- j blad
- oo1:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,79,oo2
- j blad
- oo2:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,80,P
- j blad
- P:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- j blad
- J:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,32,spacjaJ
- beq $t2,82,R
- beq $t2,65,AJAL
- j blad
- spacjaJ:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- addi $t2,$t2,-32
- blt $t2,90,spacjaJ
- j blad
- R:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,32,spacjaJR
- j blad
- spacjaJR:
- add $t5,$t5,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- blt $t2,47,blad
- blt $t2,58,spacjaJR
- j blad
- AJAL:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,76,LJAL
- j blad
- LJAL:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,32,spacjaJAL
- j blad
- spacjaJAL:
- add $t5,$t5,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,10,endline
- addi $t2,$t2,-32
- blt $t2,90,spacjaJAL
- j blad
- M:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,85,U
- j blad
- U:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,76,L
- j blad
- L:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,84,T
- j blad
- T:
- add $t4,$t4,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,32,spacjaMULT
- j blad
- spacjaMULT:
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,cyfra1MULT
- j blad
- cyfra1MULT:
- add $t5,$t5,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- beq $t2,44,przecinekMULT
- j blad
- przecinekMULT:
- add $t6,$t6,$t2
- addi $t1,$t1,1
- lb $t2,buffer($t1)
- blt $t2,47,blad
- blt $t2,58,endline
- j blad
- endline:
- addi $t3,$t3,1
- la $a0,udalo
- li $v0,4
- syscall
- j stos2
- powrot:
- beq $t3,$t0,koniec
- j instrukcja
- stos:
- addi $sp,$sp,-4
- sw $t7,0($sp)
- addi $t8,$t8,1
- addi $sp,$sp,-4
- sw $t6,0($sp)
- addi $t8,$t8,1
- addi $sp,$sp,-4
- sw $t5,0($sp)
- addi $t8,$t8,1
- addi $sp,$sp,-4
- sw $t4,0($sp)
- addi $t8,$t8,1
- j powrot
- blad:
- la $a0,jestblad
- li $v0,4
- syscall
- j instrukcja
- koniec:
- j wyswietl
- wyswietl:
- lw $t9,0($sp)
- addi $sp,$sp,4
- la $a0,($t9)
- li $v0,4
- syscall
- addi $t8,$t8,-1
- beq $t8,0,zakoncz
- j wyswietl
- zakoncz:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement