You are to implement a very simple disassembler. Prompt for the starting and ending addresses of loaded HC11 code that only uses the following instructions: Instruction Any branch instruction ADDA Immediate, direct, extended mode only DECA Inherent only INCA Inherent only JSR Direct, extended mode only LDA Immediate, direct, extended mode only LSLA Inherent only LSRA Inherent only RTS STA Direct, extended mode only SUBA Immediate, direct, extended mode only SWI Instruction Allowable modes Class Any branch instruction Relative REL ADDA Immediate, direct, extended GEN DECA Inherent INH INCA Inherent INH JSR Direct, extended NOIMM LDAA Immediate, direct, extended GEN LSLA Inherent INH LSRA Inherent INH RTS Inherent INH STA Direct, extended NOIMM SUBA Immediate, direct, extended GEN SWI Inherent INH Output a dissembled instruction and pause until the user strikes the space bar. Continue in this fashion until reaching the ending address. Your main processing loop should advance the program counter as you obtain and disassemble instructions. When you read an opcode word, you must identify the mnemonic and the addressing mode. When the mode is REL, you have the read the 8-bit offset that is relative to PC+2, where PC is the address of the opcode byte. Add the offset to PC+2 using signed arithmetic
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
This program needs to run on the motorola mc68hc11 microcontroller and be programed in C. I have all the libraries and assemblers if you need them as well.