Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #This is lecture practice on printing out binary using stack
- #Author: Sawyer Sieja
- #Date: 9/26/2016
- .data
- getNum: .ascii "Enter number you wish to convert to 32bit binary:"
- theNum: .ascii "The number "
- in32bit: .ascii " in 32 bit binary is:\n"
- pZeros: .ascii "0"
- .text
- main:
- li $v0, 4
- la $a0, getNum
- syscall
- li $v0, 5
- syscall
- add $s0, $v0, $0
- li $s1, 0 #count
- li $t0, 2 # $t0 = 2
- div $s0, $t0 # divide n by 2
- mflo $t1 #quotient goes to $t1
- mfhi $t2 #remainder goes to $t2
- addi $s1, $s1, 1 #add 1 to count
- addi $sp, $sp, -4 #move stack 1 element
- sw $t2, 0($sp) #store remainder into stack
- loop: beq $t1, $0, continue
- div $t1, $t0
- mflo $t1 #quotient goes to $t1
- mfhi $t2 #remainder goes to $t2
- addi $s1, $s1, 1 #add 1 to count
- addi $sp, $sp, -4 #move stack 1 element
- sw $t2, 0($sp) #store remainder into stack
- j loop
- continue:
- li $v0, 4
- la $a0, theNum
- syscall
- li $v0, 1
- add $a0, $s0, $s0
- syscall
- li $v0, 4
- la $a0, in32Bit
- syscall
- li $t3, 32
- sub $t4, $t3, $s1
- loop2: beq $t4, $0, binary
- li $v0, 4
- la $a0, pZeros
- syscall
- addi $t4, $t4, -1
- j loop2
- binary: beq $s1, $0, exit
- addi $sp, $sp, 4
- lw $a0, 0($sp)
- li $v0, 1
- syscall
- addi $s1, $s1, -1
- j binary
- exit: li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement