Program specification: The program "Proj_a" will implement a rudimentary 80x86 assembler and the program "Proj_e" will implement the first phase of an 80x86 emulator. The assembler will process an assembler source file containing the instructions and directives described below and output an "exe" file. It should also construct and print out the symbol table as shown. The emulator will process an exe file by invoking a loader to load the exe program into the simulated memory using a 16-bit segmented memory model, initializing the segment and IP registers, and beginning a fetch/execute cycle that terminates upon execution of a halt instruction. The exe file has the following format. All lines begin in column 1 with no leading blanks. Except for the segment definition lines, each line contains a 2-digit hex number representing a byte. All alpha characters are in lower case. Any remaining characters on a line are ignored. A segment definition line specifies the 2-char segment name and the segment length in hex, separated by a single space. Segments must be in the order given below and may not have a length greater than 64Kb. The file looks like: ss length any other chars ignored, but must be preceded by at least 1 blank ds length length is a hex constant without the trailing "h" ... series of bytes cs length ... series of bytes Assembler instructions and directives (case insensitive): 1) org, byte, word - org relative to beginning of a segment, byte will store value as 8-bits, and word will store as 16-bits. 2) .stack length - defines a stack segment of size "length" bytes. Length is given as a binary, decimal, or hex constant. 3) .data - defines the data segment. Data segment has its own location counter. 4) .code - defines the code segment. Code segment has its own location counter. 5) end - marks the end of the assembler statements. 6) halt - instruction that causes execution to halt. Machine code is ff38.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) The project must be written in java. 3) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 4) Complete ownership and distribution copyrights to all work purchased.
## Platform
The program must run in j2sdk1.4.1.