Question

LC3 Subroutine. Write a subroutine called MULTIPLY that will return the product of two numbers that...

LC3 Subroutine.
Write a subroutine called MULTIPLY that will return the product of two numbers that are in R0 and R1. No need to take user input. The product will be placed in R2. Do not mangle any registers other than the one you are supposed to change.
0 0
Add a comment Improve this question Transcribed image text
Answer #1

Below is the subroutine multiple

MULTIPLY

AND R2, R2, 0 //R2 will store value 0 now

ADD R3, PC, 2 //Store value of PC+2 into R3 which is the value of next instruction with label START

START :- ADD R2, R2, R1 //R2 = R2+R1

ADD R0, R0, -1 //This will reduce the count of R0 by 1

BRz END //Branch to label END if R0 becomes 0

JMP R3 //Jump at label START whose address is stored in R3, if R0 is not zero

END :- RET //Return instruction

Please comment for any clarification

Add a comment
Know the answer?
Add Answer to:
LC3 Subroutine. Write a subroutine called MULTIPLY that will return the product of two numbers that...
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
  • Write an ARM assembly language subroutine (named nfibo) to calculate and return the n-th Fibonacci number....

    Write an ARM assembly language subroutine (named nfibo) to calculate and return the n-th Fibonacci number. Fibonacci numbers (or a Fibonacci sequence) are a series of numbers with a property that the next number in the series is a sum of previous two numbers. Starting the series from 0, 1 as the first two numbers we have 0, 1, (0 + 1) = 1, (1 + 1) = 2, (1 + 2) = 3, (2 + 3) = 5, (3...

  • LC3 stack (factorial) I need help in writing factorial in Lc3 language by using stack.. ; Begin ...

    LC3 stack (factorial) I need help in writing factorial in Lc3 language by using stack.. ; Begin reserved section: do not change ANYTHING in reserved section! .ORIG x3000 BR Main ; Parameter and result Param .FILL x0004 Result .BLKW 1 ; Constants Stack .FILL x4000 One .FILL #1 MinusOne .FILL #-1 ; End reserved section: do not change ANYTHING in reserved section! ;------------------------------------------------------------------------------- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; int Factorial(int N) ; Returns N! (must be a recursive function) ; Factorial ;__________________...

  • Write a function called calc_crown_area that will receive pairs of lengths of radii as input arguments,...

    Write a function called calc_crown_area that will receive pairs of lengths of radii as input arguments, and will return the areas of the crowns. The function should work when: • the inputs are a pair of single values, i.e. one scalar for the inner radius and one scalar for the outer radius. In this case, the function will return one single output for the area. • the inputs are a pair of vectors, i.e. one vector of inner radii (R1)...

  • Write a subroutine code to divide two positive numbers by repeated subtraction method. For exampl...

    Write a subroutine code to divide two positive numbers by repeated subtraction method. For example, to divide 100 over 8 by subtracting 8 from 100 until the reminder be less than 8, then count the times of the subtractions, to give the result. The first number, second number, and then the result locations must follow the calling code. I need the solution using assembly language not java or c++, please..!!!!

  • Code written in NASM Function called findLargest Write a function called findLargest that receives two parameters:...

    Code written in NASM Function called findLargest Write a function called findLargest that receives two parameters: an unsigned doubleword array and the length of the array. The function must return the value of the largest array member in eax. Preserve all registers (except eax) that are modified by the function. Write a test program in main that calls findLargest three times, each call using a different array with different lengths. Function called countHits Write a function called named countHits that...

  • You must write a C program that prompts the user for two numbers (no command line...

    You must write a C program that prompts the user for two numbers (no command line input) and multiplies them together using “a la russe” multiplication. The program must display your banner logo as part of a prompt to the user. The valid range of values is 0 to 6000. You may assume that the user will always enter numerical decimal format values. Your program should check this numerical range (including checking for negative numbers) and reprompt the user for...

  • Complete the functions for the program complex.c (Down) . The program adds, subtracts,and multiplies complex numbers....

    Complete the functions for the program complex.c (Down) . The program adds, subtracts,and multiplies complex numbers. The C program will prompt the user for the choice of operations,read in the complex numbers, perform the operations, and print the results. The main programrepeatedly prints the menu, reads in the user’s selection, and performs the operation. We use pointers only for those arguments that the function intends to change. In all thefunctions, r represents the real component and i represents the imaginary...

  • When two resistors are wired in series with a 12 V battery, the current through the...

    When two resistors are wired in series with a 12 V battery, the current through the battery is 0.30 A. When they are wired in parallel with the same battery, the current is 1.6 A. What are the values of the two resistors? Note: I understand other people have asked the same concept with different numbers, and their questions have been answered, however I do not understand why you need to multiple R1 by R2 when the resistors are in...

  • *Please write in code in C* First, write a function called prime_check(int x) that takes an...

    *Please write in code in C* First, write a function called prime_check(int x) that takes an integer number as an input then return 1 if it is a prime number nd returns 0 if it is a composite number Then, Write a program that prompt the user to input two numbers: Print the multiplication of these two numbers if both of them are prime. Or Print " Sorry at least one of your number is composite" if otherwise

  • Write another program called calculator that inherits from class average and also has methods that has:...

    Write another program called calculator that inherits from class average and also has methods that has: two methods multiply() to calculate the product of the numbers. One method will have two parameters which are both ints. The second method has three parameters: two ints and a Double. Another method “Power” that finds the power of a number using methods. For example, if the user types in: 5 and 3, the program should print out 125. 3. And another method “Factorial”...

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
ADVERTISEMENT