Question

MIPS ASSEMBLY LANGUAGE Write MIPS code to convert binary to decimal: (01110001)2 to (113)10 .data   binary_digit:  ...

MIPS ASSEMBLY LANGUAGE

Write MIPS code to convert binary to decimal: (01110001)2 to (113)10

.data  

binary_digit:       .word       0 1 1 1 0 0 0 1       # is 113 in decimal

.globl main

main:
# Load arguments to argument registers

# Call convert()
  
  # Print return value
# (it's in $v0, make sure to copy it before overwriting to print)
      
# Properly end program
  

convert:

# This label is where conversion of the current array will begin

# Arguments to "functions" in MIPS are passed in on $a# registers
#   in this case, $a0 = &array[0], $a1 = array.size()
  
# zero the loop counter
# zero the return register, i.e. running total

# beginning of loop
# If counter >= size, we've iterated every digit and it's time to return the running total
# Get bit at current index
      
# Calculate power to raise the current bit to
  
# Multiply current bit by 2^power using shift operation
# (Calculate 2^power using multiply loop)
# (Remember, sll $reg $reg 1   ===   $reg = $reg * 2)
  
# Add current_bit * 2^power to running total
# Increment index
# Start loop again
# end of loop

# Jump back to Return Address

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Code to convert binary to decimal :-

                .data

msg1:                 .asciiz             "Enter a number in binary: "

msg2:                 .asciiz             "The resulting decimal number is: "

newline:              .space            "\n"

buffer                 .space              32

                       .text

main:

        li $v0, 4

       la $a0, msg1

      syscall

       li $v0, 8

la $a0,buffer                               #load space into address

      li $a1,33                                          #allot the byte space for string

       move $t2, $a0                          #save string to t2

         syscall

        li $s1,32                                 #set outer loop counter

        li $s2,30                                   #set inner loop counter

biToDecLoop:

         li $t0, '0'

         li $t1, '1'

         lb $t3, ($t2)

         beg $t3, $t0, binaryZero

         beg $t3, $t1, binaryOne

binaryZero:

         subi $s2, $s2, 1             #decrement inner loop counter

          j biToDecNext

binaryOne:

        add $t3, $t3, 1

        mul $t3, $t3, 2

       subi   $s2, $s2, 1                 #decrement inner loop counter

               bne $s2, $zero , binaryOne                     #loop executes until inner counter reaches zero

               move $t4, $t3                                

              add $t5, $t5, $t4        #t5 is the total that will be the resuting int

              li $t0, 32

             li $t1, 33

             beq   $s1, $t0, addTwo

             beg $s1, $t1, addOne

              j biToDecNext

addTwo:                                            #checking if there is a 1 in the second to last index of string

            add $t5, $t5 , 2                      #Add 2 to total($t5)

            j biToDecNext

addOne:                                            #checking if there is a 1 last index of string

          add $t5, $t5 1                          #add 1 to total ($t5)

            j biToDecNext

biToDecNext:

            add $t2, $t2, 1                       #get next character in string

                      subi $s1, $s1, 1                     #decrement outer loop counter

                      bne $s1, $zero, biToDecLoop                        #loop executes until counter reaches zero

end:

            li $v0, 4                   #output msg2

            la $a0, newline   

           syscall

          li $v0,4                    #output msg2

           la $a0,msg2

          syscall

#exiting the program

          li v0, 10

         syscall

Add a comment
Know the answer?
Add Answer to:
MIPS ASSEMBLY LANGUAGE Write MIPS code to convert binary to decimal: (01110001)2 to (113)10 .data   binary_digit:  ...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • How can I convert the following C code to MIPS Assembly? +++++++++++++++++++++++++++++++++ MIPS main program ++++++++++++++++++++++++++++++++...

    How can I convert the following C code to MIPS Assembly? +++++++++++++++++++++++++++++++++ MIPS main program ++++++++++++++++++++++++++++++++ .data # Defines variable section of an assembly routine. array: .word x, x, x, x, x, x, x, x, x, x # Define a variable named array as a word (integer) array # with 10 unsorted integer numbers of your own. # After your program has run, the integers in this array # should be sorted. .text # Defines the start of the code...

  • MIPS assembly language Implement the following code in MIPS int array [ ] {2, 3, 4,...

    MIPS assembly language Implement the following code in MIPS int array [ ] {2, 3, 4, 5, 6); int main) int num, position; scanf("%d",&num) ; position search(array, printf("The position is: num, 5); %d\n",positio int search(int array, int num, int size int position =-1; for(int i-0;i<size; i++) if(array [i]=num) { position-i; break; return position; Register map $s1: position $a0: array address $a1: num . $a2: size . $VO: return value

  • Question 3 (10 points) Convert the following MIPS assembly code into machine language. Write the instruction...

    Question 3 (10 points) Convert the following MIPS assembly code into machine language. Write the instruction in hexadecimal. The opcode for sw 43 (101011). sw St1, -4(St3) Question 4 (10 points) Consider the following MIPS assembly code: addi $s3, $0, 5 addi $s1, S0, 3 addi Ss1, $s1, 2 beq Ss3, Ssl, target addi Ss1, Ss1, 1 target: add Ss3, Ss1, Ssl a. After running the code, what is the value of Ss3? b. If the memory address of the...

  • Write code in c prototypes for ConvertDecimalToBinary and PrintBinary function ConvertDecimalToBinary0 pass in input decimal number...

    Write code in c prototypes for ConvertDecimalToBinary and PrintBinary function ConvertDecimalToBinary0 pass in input decimal number and array to hold binary number (8 cells 1 for each bit) In for loop, use right bitshift to divide by 2 In for loop, use a bitmask to determine if odd or even and ternary if to assign 1 or 0 to bit array function PrintBinary pass in binary number array Use for loop to print out each element of binary number array...

  • Write MIPS code, please. Following: Write a program to be used by the Wisconsin DNR to...

    Write MIPS code, please. Following: Write a program to be used by the Wisconsin DNR to track the number of Deer Hunting Licenses issued in a county and the state. It will display a menu with 5 choices numbered 1-5. They are (1) update the count, (2) display the number of licenses already issued to a county whose number is input, (3) display the county number and the number of licenses already issued to a range of counties whose starting...

  • IN MIPS PLEASE. Need help writing a MIPS program that reads from a text file named...

    IN MIPS PLEASE. Need help writing a MIPS program that reads from a text file named "input.txt" and places it in a buffer. A buffer of 80 bytes is more than enough. Before you call your function, set $a0 equal to the address of the filename and $a1 to the address of the buffer where data is stored. The function should return the number of bytes read in $v0. In the main program, print an error message and terminate the...

  • 1. Write a program in Assembly language using MIPS instruction set that reads two integer numbers...

    1. Write a program in Assembly language using MIPS instruction set that reads two integer numbers from the user named as start and end number and finds out all the prime numbers between start and end (including start and end). Your program should do the validation of both the numbers as follows: i. start number must be smaller or equal to the end number. ii. Both numbers must be positive. iii. The maximum value for the end number is 10000...

  • PLEASE USE VERY BASIC REGISTERS AND CODE TO DO THE FOLLOWING Objectives: -write assembly language programs...

    PLEASE USE VERY BASIC REGISTERS AND CODE TO DO THE FOLLOWING Objectives: -write assembly language programs to:             -define a recursive procedure/function and call it.             -use syscall operations to display integers and strings on the console window             -use syscall operations to read integers from the keyboard. Assignment Description: Implement a MIPS assembly language program that defines "main", and "function1" procedures. The function1 is recursive and should be defined as: function1(n) = (2*n)+9                      if n <= 5              =...

  • C Programming: Write a program that inputs two strings that represent floating-point values, convert the strings...

    C Programming: Write a program that inputs two strings that represent floating-point values, convert the strings to double values. Calculate the sum,difference,and product of these values and print them. int main(){    // character string value array for user    char stringValue[10];       double sum=0.0;// initialize sum to store the results from 2 double values       double difference=0.0; // initialize difference to store the results from 2 double values       double product = 0.0; // intitialzie product...

  • Group Project 1 The Micro-1 Processor Simulation <Micro-1 Computer> Here's the organization of a computer equipped...

    Group Project 1 The Micro-1 Processor Simulation <Micro-1 Computer> Here's the organization of a computer equipped with a Micro-1 processor Memory contains an array of integer cells: int cell[] = new int[CAP]; where CAP is the capacity of memory. Initially this is set to 256. Internally, the Micro-1 processor is equipped with eight 32-bit data/address registers and two 32 bit control registers: PC, the program counter, contains the address of the next instruction to execute. IR, the instruction register, contains...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT