.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
   
      bleu $t7, 10, koniecProgramu #jezeli wczytal ostatnni znak konczy program
      
      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
      

      
      xor $s2, $s0, $s1 #xoruje
      li $t4, 9
      
     # blt $s2, $t4, dec2hex
      #dalej:
      bgt $s2, $t4, literka    
      addi $s2, $s2, '0'
      dalej:
      li $v0, 11
      move $a0, $s2 #drukuje to po sxorowaniu
      syscall
      
      bgt $s1, $t4, literka2   
      
      addi $s1 $s1, '0'
      dalej2:
      li $v0, 11
      move $a0, $s1
      syscall
   
      addi $t6, $t6, 1
      j petla #skacze do anstepnej literki w stringu
      
   koniecProgramu:
      li $v0, 10
      syscall
 literka:
      addi $s2, $s2, 55
      j dalej
  literka2:
      addi $s1, $s1, 55
      j dalej2