Advertisement
Guest User

Untitled

a guest
Sep 27th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #This is lecture practice on printing out binary using stack
  2. #Author: Sawyer Sieja
  3. #Date: 9/26/2016
  4.  
  5. .data
  6. getNum: .ascii "Enter number you wish to convert to 32bit binary:"
  7. theNum: .ascii "The number "
  8. in32bit: .ascii " in 32 bit binary is:\n"
  9. pZeros: .ascii "0"
  10.  
  11. .text
  12. main:
  13.  
  14. li $v0, 4
  15. la $a0, getNum
  16. syscall
  17.  
  18. li $v0, 5
  19. syscall
  20.  
  21. add $s0, $v0, $0
  22.  
  23. li $s1, 0 #count
  24. li $t0, 2 # $t0 = 2
  25. div $s0, $t0 # divide n by 2
  26. mflo $t1 #quotient goes to $t1
  27. mfhi $t2 #remainder goes to $t2
  28. addi $s1, $s1, 1 #add 1 to count
  29. addi $sp, $sp, -4 #move stack 1 element
  30. sw $t2, 0($sp) #store remainder into stack
  31.  
  32.  
  33. loop: beq $t1, $0, continue
  34.  
  35. div $t1, $t0
  36. mflo $t1 #quotient goes to $t1
  37. mfhi $t2 #remainder goes to $t2
  38. addi $s1, $s1, 1 #add 1 to count
  39. addi $sp, $sp, -4 #move stack 1 element
  40. sw $t2, 0($sp) #store remainder into stack
  41.  
  42. j loop
  43.  
  44. continue:
  45. li $v0, 4
  46. la $a0, theNum
  47. syscall
  48.  
  49. li $v0, 1
  50. add $a0, $s0, $s0
  51. syscall
  52.  
  53. li $v0, 4
  54. la $a0, in32Bit
  55. syscall
  56.  
  57. li $t3, 32
  58.  
  59. sub $t4, $t3, $s1
  60.  
  61. loop2: beq $t4, $0, binary
  62.  
  63. li $v0, 4
  64. la $a0, pZeros
  65. syscall
  66.  
  67. addi $t4, $t4, -1
  68.  
  69. j loop2
  70.  
  71. binary: beq $s1, $0, exit
  72.  
  73. addi $sp, $sp, 4
  74. lw $a0, 0($sp)
  75. li $v0, 1
  76. syscall
  77.  
  78. addi $s1, $s1, -1
  79.  
  80. j binary
  81.  
  82. exit: li $v0, 10
  83. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement