Question: Please do the whole program in x 8 6 MASM assembly with the Irvine library. You don't need to do the extra credit Summary: Create

Please do the whole program in x86 MASM assembly with the Irvine library. You don't need to do the extra credit
Summary:
Create a simple Contact Management System using assembly language that allows a
user to add and display contacts. This assignment will exercise your skills with strings and
arrays in MASM. The system will support storing multiple contacts, where each contact has
a name and a phone number.
Main Menu
Contact Management System
Add Contact
Display All Contacts
Exit
Please select an option:
Note: The user must always be prompted for input, and all inputs must be thoroughly
error-checked.
Assignment Description
Menu Logic:
The main loop displays the menu and handles user input.
Based on the user's selection, it calls the appropriate functionality (add contact,
display contacts, or exit).
Add Contact: Allows the user to input a contact's name (up to 20 characters) and
phone number (exactly 10 characters). A confirmation message of successfully
adding a record to the lists must be displayed.
Display All Contacts: Displays all stored contacts with their respective names and
phone numbers.
The main menu should be displayed each time the user completes a procedure,
allowing them to choose another option or exit the program.
Data Storage:
Contacts will be stored in an array of structures. Each structure contains:
Name: A string of up to 20 characters plus a null terminator.
Phone Number: A string of 10 characters (assumed to be digits without
formatting).
Program Flow:
The program will present a menu with options to add a contact or display all
contacts.
The user can input up to 20 contacts for simplicity.
Input validation: All inputs must be error-checked.
Ensure names are not longer than 20 characters and phone numbers are
exactly 10 characters without null terminator
Handle invalid menu inputs.
Prevent adding more than 5 contacts.
Procedures and Stack Frame Usage:
Create at least two procedures that add contacts and display the contact list
For two procedures mentioned above, pass the parameters using the STACK. Ensure
the parameters are placed on the stack before calling a procedure.
You are not allowed to use 'Enter' and 'Leave' instructions, or LOCAL
directive.
You must access those parameters via EBP in each stack frame
Correctly setting up stack frame is the most important part of this assignment
Make thoughtful decisions on pass-by-value vs. pass-by-reference parameters.
Uses offsets and multipliers to correctly access the array elements for each
contact.
Contacts List:
O. John Doe -1234567890
Bob Smith -8765432100
Sung Nam -3456789012
Sample Output without invalid cases here but your output must show ALL of
invalid test cases
Contact Management System
Add Contact
Display All Contacts
Exit
Please select an option: 1
Add a contact:
Enter Name (max 20 chars): John Doe
Enter Phone Number (10 digits): 1234567890
Contact added successfully.
Contact Management System
Add Contact
Display All Contacts
Exit
Please select an option: 1
Add a contact:
Enter Name (max 20 chars): Kip Irvine
Enter Phone Number (10 digits): 3456789012
Contact added successfully.
Contact Management System
Add Contact
Display All Contacts
Exit
Please select an option: 1
Add a contact:
Enter Name (max 20 chars): Sung Nam
Enter Phone Number (10 digits): 3031234567
Contact added successfully.
Contact Management System
Add Contact
Display All Contacts
Error checking and exception handling with proper messages:
Minimally, following two user input errors must be handled:
Menu option
The length of the phone number must be exactly 10 digits, and it should
contain digits only, '0'-'9'. The length can't be smaller than 10.
Programming Style:
Style is a critical component of your grade. Include descriptive comment blocks
for all procedures, including main.
Capture the algorithm or program flow in the header of each function
Prohibited Constructs:
Do not use any directives to assist with program flow, such as .if,.while, .else,
etc.
The USES directive is also prohibited.
Testing
At least 7 records must be added.
Displaying the list after adding 3^("rd "),5^("th "), and 7^("th ") records showing the current
records at each display point
All exception cases must be tested and the exception must be handled
graciously. The results of invalid input cases must be included in output file for
full credit consideration.
See above for the minimal error checking cases.
You may record the result of all possible test cases in one shot of testing upon
completing each unit test first.
Example Interaction:
Add Contact:
Enter Name (max 20 chars): John Doe
Enter Phone Number (10 digits): 1234567890
Contact added successfully.
Display All Contacts:
Exit
Please select an option: 2
Contacts List:
0. John Doe -1234567890
Kip Irvine -3456789011 Sung Nam -3031234567
Deliverables for both regular one and Extra Credit one:
Source code in .asm and .txt files Output document in .txt or
Please do the whole program in x 8 6 MASM

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!