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 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.
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Topic Video
Question
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.
![C:\WINDOWS\system32\cmd.exe
Enter an integer N (N> 0): -1
Invalid. It must be positive. Try again.
Enter an integer N (N> 0): 78
The divisors of 78 are:
1 2 3 6 13 26 39 78
The multiples of 78 are:
78 156 234 312 390 468 546 624 702 780 858 936 1014 1092 1170 1248 1326 1404 1482 1560
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 91
The divisors of 91 are:
1 7 13 91
The multiples of 91 are:
91 182 273 364 455 546 637 728 819 910 1001 1092 1183 1274 1365 1456 1547 1638 1729 1820
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 154
The divisors of 154 are:
1 2 7 11 14 22 77 154
The multiples of 154 are:
154 308 462 616 770 924 1078 1232 1386 1540 1694 1848 2002 2156 2310 2464 2618 2772 2926 3080
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 240
The divisors of 240 are:
1 2 3 4 5 6 8 10 12 15 16 20 24 30 40 48 60 80 120 240
The multiples of 240 are:
240 480 720 960 1200 1440 1680 1920 2160 2400 2640 2880 3120 3360 3600 3840 4080 4320 4560 4800
Do you want another run? (Y/N): n
Press any key to continue . . . .](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F91ad0dcd-38ac-42ad-b8f9-a7ce1921a74f%2F73f69e54-4f89-4bc1-85eb-e3b17d0dd0b3%2Fu4brnqh_processed.jpeg&w=3840&q=75)
Transcribed Image Text:C:\WINDOWS\system32\cmd.exe
Enter an integer N (N> 0): -1
Invalid. It must be positive. Try again.
Enter an integer N (N> 0): 78
The divisors of 78 are:
1 2 3 6 13 26 39 78
The multiples of 78 are:
78 156 234 312 390 468 546 624 702 780 858 936 1014 1092 1170 1248 1326 1404 1482 1560
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 91
The divisors of 91 are:
1 7 13 91
The multiples of 91 are:
91 182 273 364 455 546 637 728 819 910 1001 1092 1183 1274 1365 1456 1547 1638 1729 1820
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 154
The divisors of 154 are:
1 2 7 11 14 22 77 154
The multiples of 154 are:
154 308 462 616 770 924 1078 1232 1386 1540 1694 1848 2002 2156 2310 2464 2618 2772 2926 3080
Do you want another run? (Y/N): y
Enter an integer N (N> 0): 240
The divisors of 240 are:
1 2 3 4 5 6 8 10 12 15 16 20 24 30 40 48 60 80 120 240
The multiples of 240 are:
240 480 720 960 1200 1440 1680 1920 2160 2400 2640 2880 3120 3360 3600 3840 4080 4320 4560 4800
Do you want another run? (Y/N): n
Press any key to continue . . . .
![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.
➤ Find Divisors: 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.
Find Multiples: 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.
➤ Another Run: 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.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F91ad0dcd-38ac-42ad-b8f9-a7ce1921a74f%2F73f69e54-4f89-4bc1-85eb-e3b17d0dd0b3%2Fgq9svjp_processed.jpeg&w=3840&q=75)
Transcribed Image Text: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.
➤ Find Divisors: 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.
Find Multiples: 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.
➤ Another Run: 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.
Expert Solution
![](/static/compass_v2/shared-icons/check-mark.png)
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 3 steps with 3 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education