Write MIPS code to perform addition of two unsigned numbers in registers $t1 and
ID: 2080635 • Letter: W
Question
Write MIPS code to perform addition of two unsigned numbers in registers $t1 and $t2 and then verify whether the result has overflowed the 32-bit long destination register $t3. Explain the overflow logic with comments to elaborate upon each line of MIPs code. Indicate with a diagram how the same logic can be implemented in hardware. Explain with a flow chart and architecture diagram hardware efficient division algorithm may be performed Explain why massively parallel implementation of the division algorithm not possible?Explanation / Answer
A)
#---------------------------------------------------------------------------------------#
.data
A: .word # Store the number 4 as an integer in var1 # $t1 is used
B: .word # Store the number 2 as an integer in var2 # $t2 is used
S: .word # Store the sum of A and B # $t3 is used
Prompt1: .asciiz "Please enter first number: "
Prompt2: .asciiz "Please enter second number: "
Result: .asciiz "The sum of A and B is: "
.text
main:
#--------------------------------------------------------#
#Display first prompt
li $v0, 4 # Load instruction "print string"
la $a0, Prompt1 # Load prompt into $a0
syscall
#Read first integer
li $v0, 5 # Read 1st integer
la $t1, A # $t1 = A
syscall
#Store first integer into memory
move $t1, $v0 # Move contents in $v0 to $t1
sw $t1, A # A = value at $t1
#--------------------------------------------------------#
#Display second prompt
li $v0, 4 # Load instruction "print string"
la $a0, Prompt2 # Load prompt into $a0
syscall
#Read second integer
li $v0, 5 # Read 1st integer
la $t2, B # $t1 = A
syscall
#Store second integer into memory
move $t2, $v0 # Move contents in $v0 to $t2
sw $t2, B # A = value at $t1
#--------------------------------------------------------#
#Add the two variables
la $t3, S # $t3 = S
add $t3, $t1, $t2 # $t3 = $t1 + $t2
sw $t3, S # S = value at $t3
#Display the Result prompt
la $a0, Result # Loads Output label to be printed
li $v0, 4 # Sysycall to print string
syscall
#Display the sum
lw $a0, S # $a0 = value at S
li $v0, 1 # Syscall to print integer
syscall
#Exit the program
Here unsigned numbers are there so overflow will not take place in $t3 register.
C)
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.