title: How do I correctly use the mod operator in MIPS?
body: <p>In MIPS, I am confused on how to get the mod to work. Below is the code I have come up with thus far. I may have more errors besides the mod, but I feel those errors are a result of the mod misunderstanding. All I'm trying to do is to get the working code (python) here:</p>
  
  <pre><code>i = 1
  k = 0
  while i &lt; 9:
  if i % 2 != 0:
      k = k + i
  i += 1
  print(k)
  </code></pre>
  
  <p>to be correctly translated into MIPS. This is my first shot at assembly, so there may be more than mod errors that are tripping me up in the code below:</p>
  
  <pre><code># Takes the odd integers from 1 to 9, adds them,
  #  and spits out the result.
  # main/driver starts here
      .globl main
  
  main:
  
  #data segment
  .data
  
  Li:     .byte 0x01  # i = 1
  Lj:     .byte 0x09  # j = 9
  Lk:     .byte 0x00  # k = 0
  Ltwo:   .byte 0x02  # 2 for mod usage
  
  # text segment
  .text
  
  lb $t0, Li      # temp reg for i
  lb $t1, Lj      # j
  lb $t2, Lk      # k
  lb $t3, Ltwo        # 2
  
  L1:  beq $t0, $t1, L2   # while i &lt; 9, compute
       div $t0, $t3       # i mod 2
       mfhi $t6        # temp for the mod
       beq $t6, 0, Lmod   # if mod == 0, jump over to L1
       add $t2, $t2, $t0  # k = k + i
  Lmod:    add $t0, $t0, 1        # i++
       j L1           # repeat the while loop
  
  
  L2: li $v0, 1       # system call code to print integer
  lb $a0, Lk      # address of int to print
  syscall
  
  li $v0, 10
  syscall
  </code></pre>