Write an assembly language program that reads from the keyboard a positive integer N (N > 0) and finds and displays on the screen all the divisors of N and all the multiples of N up to 20N. Your program must satisfy the following: Allow the user to do any number of runs entering a new value for N each time. Define and use the following 4 procedures: ReadN: asks the user to enter a positive integer N (N > 0) and reads it. If the user enters an invalid value, it displays the error message “Invalid. It must be positive. Try again.”, and reads again until a valid value is entered. It returns the entered valid value in EAX. FindDivisors: finds and displays all the divisors of N. You must optimize the loop to run as efficiently as possible. The value of N is passed to the procedure in EAX. FindMultiples: calculates and displays on the screen all the multiples of N up to 20N. The value of N is passed to the procedure in EAX. AnotherRun: asks the user “Do you want another run? (Y/N): ”. If the user enters ‘Y’ or ‘y’, it returns 1 in the AL register otherwise it returns 0 in the AL register. The sample run on the next page shows how your program should run
Write an assembly language
and finds and displays on the screen all the divisors of N and all the multiples of N up to 20N.
Your program must satisfy the following:
Allow the user to do any number of runs entering a new value for N each time.
Define and use the following 4 procedures:
ReadN: asks the user to enter a positive integer N (N > 0) and reads it. If the user enters
an invalid value, it displays the error message “Invalid. It must be positive. Try again.”,
and reads again until a valid value is entered. It returns the entered valid value in EAX.
FindDivisors: finds and displays all the divisors of N. You must optimize the loop to
run as efficiently as possible. The value of N is passed to the procedure in EAX.
FindMultiples: calculates and displays on the screen all the multiples of N up to 20N.
The value of N is passed to the procedure in EAX.
AnotherRun: asks the user “Do you want another run? (Y/N): ”. If the user enters ‘Y’
or ‘y’, it returns 1 in the AL register otherwise it returns 0 in the AL register.
The sample run on the next page shows how your program should run
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 4 images