Question
Write a C++ program called hw3.cpp that prompts the user for a file name, then does a limited number of syntax checks on the file
Write a C++ program called hw3.cpp that prompts the user for a file name, then does a limited number of syntax checks on the file as an assembly language program.
Here is a sample file containing a couple instructions:
inc ax
ret
The output should be:
-----------------------
This program displays information about a set of Intel-like assembly instructions
Enter name of file with instructions (no spaces): 2lines_ok.txt
1. The increment opcode
operand 1 : ax
2. The return opcode
-------------------------
The requirements for the assignment.
1. Each line is a single assembly language statement. The first word on the line is the opcode, optionally followed by a list of operands, separated by commas.
2. There are only 3 supported opcodes: inc, je, ret. These represent operations to increment, jump if equal, and return.
a. The increment and jump if equal opcodes each require exactly one operand, like the ax in the above example. The return opcode does not accept operands
b. For the operand, you are only reading in the next word in the file. You are not checking to see if it is a valid operand
3. As shown above, for valid opcodes with the correct number of operands, just display the line number, what the opcode represents and, if appropriate, the operand.
4. Send error messages to cerr. The errors to check for are:
a. If the opcode is valid if not, display the error message as shown in the test cases, and then skip the rest of the line
b. If the number of operands is correct. Note that since the opcodes have 0 or 1 operands, the only time you must worry about more than one operand is in the error case of 2 operands. You might find putting the operands in a stringstream make this case easier to handle, but you are not absolutely required to use stringstreams.
5. Style-wise, besides an overall comment for the file, create named constants for the three opcodes. Note that you do not have to create named constants for 0 and 1
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started