16-bit C++ Virtual Machine

The X424 is a 16-bit machine with a 16-bit address bus. There are 2^16=65536 memory cells, numbered 0 through to 65535. Each memory cell is 16-bits wide. The machine also has 16 registers, numbered 0 through to 15. Each register is 16-bits wide. Register 0 is the stack pointer.
• The virtual machine is started with the command X424 followed by the start up parameters.
• The startup parameters to the virtual machine consists of a path to a file and an address, both passed on the command prompt.
• The text file contains a list of positive 16-bit integers, one integer per line.
• The integers in the text file are loaded into the memory of the virtual machine, consecutively, starting at the specified memory address.
• The stack pointer is initialized to address 65535.
• Execution of the virtual machine then begins at the specified address.

What classes and functions are involved in building this vm in c++? please help...