Assembly Language Lab Assignment
In this lab we will write an assembly program to implement a Finite State Machine (FSM) that recognizes hexadecimal integer constant that conforms to MASM syntax. The hexadecimal constant shall terminate with letter ‘h'. For example, 5EB9h is a valid hexadecimal constant, but 3G6Mh and 4DF are not valid (3G6Mh includes invalid letters and 4DF does not have the ending letter ‘h'). The FSM diagram can be depicted as following:
From this diagram, we can see that the FSM accepts digits or letters between ‘A' and ‘F' (we do not consider lower case letters for now) but nothing else. The hexadecimal constant terminates with letter ‘h'.
Implement your FSM in assembly language. Let the user input a hexadecimal constant from the keyboard. If it is a valid hexadecimal constant, print out "valid hexadecimal constant"; otherwise, print "Invalid hexadecimal constant".
Requirements:
1. Submit your source code (.asm file) which should run correctly.
2. Necessary comments are needed in your code.
3. Turn in a lab report. The lab report should include three parts: Introduction, Implementation, and Summary. The introduction briefly describes the purpose of this lab. The implementation part gives detailed description on how you implemented the task, including the runtime screen shots, as well as necessary discussions. The summary concludes the lab, e.g., what you've learned from this lab.