title: decimal to binary in assembly mips
body: <p>I am trying to convert a decimal number to a binary number. I want to store the modulus in an array and then print the result. The result must be printed backwards. This is my code so far. When it runs, a message appears saying <code>unaligned address,exception 5</code>. Here is my code so far</p>
  
  <pre><code>.data
  
  prompt1: .asciiz "\n\n Please give the decimal number:"
  
  prompt2: .asciiz "The binary number is:"
  
  array: .space 32
  
  linefeed: .asciiz "\n"
  
  enterkey: .asciiz "Press any key to end program."
  
  
  
  
  .text
  
  main:
  
  li $t0,0
  
  li $t3,2
  
    li $s0, 0
  
    li $a0, 0
  
  #t1-to hold number
  
  
  
  
  li $v0, 4 #syscall to print string
  
  la $a0, prompt1  #address of string to print
  
  syscall
  
  li $v0, 5 #syscall to read an integer
  
  syscall
  
  move $t1, $v0  #move the number to read into $t1
  
  
  for: 
  
  bge $s0, 8, end_for
  
    div $t1,$t3
  
    mflo $t1 #diversion
  
    mfhi $t1 #modulus
  
    sw $t1,array($t0) #save the number to read into array
  
    addi $t0,$t0,4
  
    addi $s0,$s0,1
  
  
    j for
  
  end_for:
  
  
  
  # print out a line feed
  
  li $v0,4 # code for print_string
  
  la $a0,linefeed # point $a0 to linefeed string
  
  syscall # print linefeed
  
  
  
  li $v0,1
  
  move $a0,$t0
  
  syscall 
  
  
  # print out a line feed
  
  li $v0,4 # code for print_string
  
  la $a0,linefeed # point $a0 to linefeed string
  
  syscall # print linefeed
  
  # wait for the enter key to be pressed to end program
  
  li $v0,4 # code for print_string
  
  la $a0,enterkey # point $a0 to enterkey string
  
  syscall # print enterkey
  
  # wait for input by getting an integer from the user (integer is ignored)
  
  li $v0,5 # code for read_int
  
  syscall #get int from user --&gt; returned in $v0
  
  # All done, thank you!
  
  li $v0,10 # code for exit
  
  syscall # exit program
  </code></pre>