In this program you are to simulate a 2-pass assembler in C++. The input to this program is an assembly language program (see the handout on SMC 68000) and the output should include a symbol table and the machine code version of the input. You have to echo the input. Do file I/O. You are implementing two classical algorithms (Fig. 6.1 & Fig 6.2). INPUT ORG $00005000 #60, $00005000 MOVE TRAP # 1 READLN (Y), INPUT INTO DO STORE DO IN LOCATION Y LOOP1 MOVE MOVE DO, $00005004 $00005000, DO $00005004, DO :FETCH VARIABLE I FOR THE AD ;ADD Y+1 ADD MOVE ; STORE THE SUM IN X DO, $00005002 # 15, $00005002 LOOP2 ADDI TRAP #2 ;ADD 18 TO X ; PRINT X ; STOP TRAP #0 END OUTPUT Address Machine code Instructions MOVE 00005000 33FC Operands 004F00005000 #60, $00005000 --