.data
   tekst: .asciiz "Podaj dowolnego stringa: "
   nowaLinia: .asciiz "\n"
   spacja: .asciiz " - "
   naszString: .space 80
   #rezerwujemy 20 bajtów na wprowadzanego stringa
.text
   wyswietlKomunikaty:
      li $v0, 4
      la $a0, tekst
      syscall
      #wyświetl prośbę o string

      li $v0, 8
      la $a0, naszString
      li $a1, 80
      syscall
      #wczytaj string
         
      la $t6, 0
         
      la $t0, naszString
      #i zapisz jego adres w pamięci do $t0
   
   petla:
      lb $t7, naszString($t6) #wczytuje do $t7 kolejny znak stringa
   
      beqz $t7, koniecProgramu #jezeli wczytal ostatnni znak konczy program
   
      li $v0, 1
      move $a0, $t7#w t7 jest kolejny znak
      syscall
      
      
      li $v0, 4
      la $a0,spacja
      syscall
      
      rem $s1, $t7, 16#zapisuje w s1 drugi szesnastkowy znak ascii
      div $t7, $t7, 16 #dzieli przez 16
      rem $s0, $t7, 16 #zaiosuje w s2 pierwszy szesnastkowy znak ascii
      
      li $v0, 1
      move $a0, $s0 #wyswietla pierwszy znak
      syscall
      li $v0, 4 
      la $a0, spacja #spacja
      syscall
      li $v0, 1
      move $a0, $s1 #drugi znak
      syscall
      li $v0, 4
      la $a0, spacja #spacja
      syscall
      
      xor $s2, $s0, $s1 #xoruje
      li $v0, 1
      move $a0, $s2 #drukuje to po sxorowaniu
      syscall
     
      li $v0, 4
      la $a0, nowaLinia
      syscall
   
      addi $t6, $t6, 1
      j petla #skacze do anstepnej literki
      
   koniecProgramu:
      li $v0, 10
      syscall