Using Mars, develop an assembly language program that allows the user to interact with a menu. The menu presents the following options:
1) Enter a Binary Number
2) Enter a Decimal Number
3) Enter a Hexadecimal Number
4) Quit
Once the user selects an option and enters a number, the program should convert the entered number into the other two formats (binary, decimal, and hexadecimal) and display all three formats as output.
The requirements for this program include the following:
1. The program should display a statement explaining its functionality but should not repeat the statement.
2. The program should display a menu of choices and prompt the user for a selection.
3. The entered number should be stored in a variable so that it can be retrieved and converted to display the appropriate results.
4. The program's tasks should be divided into manageable subroutines (procedures).
5. All output should be displayed on the screen using proper formatting techniques.
6. The program should handle different types of input, such as binary digits, hexadecimal digits, and integer numbers up to 4294967295.
7. If the user enters invalid data, the program should provide an appropriate error message and ask for valid input.
8. The program should convert lowercase hexadecimal characters to uppercase before displaying the output.
9. The output should display all three forms of the number (binary, decimal, and hexadecimal) with proper formatting.