Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write an unsigned 16-bit implementation of multiplier and divider architectures.

ID: 3621583 • Letter: W

Question

Write an unsigned 16-bit implementation of multiplier and divider architectures. You need to follow the Multiply and Divide algorithms to implement this. You must not use MIPS multiplication or division instructions.

The output of the program must include product, quotient and remainder. Also, the program must check for “0” as an input and must give error message for divide-by-zero operation.

Example:
Enter an integer (a): 14
Enter another integer (b): 3
Product: 42
Quotient (a/b): 4
Remainder (a/b): 2
Quotient (b/a): 0
Remainder (b/a): 3
Divide-by-zero

Example:
Enter an integer: 14
Enter another integer: 0
Product: 0
Quotient (a/b): Sorry, divide-by-zero not allowed
Quotient (b/a): 0
Remainder (b/a): 0

Explanation / Answer

Dear, Here is the code ###### Data segment ############ .data Prompt1:.asciiz "Enter an Integer (a):" Prompt2:.asciiz"Enter another Integer (b):" Pro_msg: .asciiz "product:" Quo1_msg: .asciiz "Quotient (a/b):" Quo2_msg: .asciiz "Quotient (b/a):" Rem1_msg: .asciiz "Quotient (a/b):" Rem2_msg: .asciiz "Quotient (b/a):" Error_msg:.asciiz "Sorry, divide-by-zero not allowed" ######## Code segment ######## .text .globl main main: la $a0,prompt1 # display prompt string li $v0,4 syscall li $v0,5 # read 1st integer into $t0 syscall move $t0,$v0 la $a0,prompt2 #display prompt string li $v0,4 syscall li $v0,5 # read 1st integer into $t0 syscall move $t1,$v0 #calculate product mul $t3,$t0,$t1 #accumulate the product move $a0,$t3 # output product li $v0,1 syscall beqz $t2,else beqz $t1,else div $t4,$t0,$t1 #accumulate quotient and reminder la $a0,Quo1_msg # display prompt string li $v0,4 syscall move $a0,$tl4 # output quotient li $v0,1 syscall la $a0,Rem1_msg # display prompt string li $v0,4 syscall move $a0,$th4 # output quotient li $v0,1 syscall la $a0,Rem1_msg # display prompt string li $v0,4 syscall move $a0,$th4 # output quotient li $v0,1 syscall beqz $t1,else div $t4,$t0,$t1 #accumulate quotient and reminder la $a0,Quo2_msg # display prompt string li $v0,4 syscall move $a0,$tl4 # output quotient li $v0,1 syscall else: la $a0,Error_msg # display prompt string li $v0,4 syscall li $v0,10 # exit syscall Hope this will help you..

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote