this is to be written in C (not C++) and must run successfully on the Linux
server in the Computer Science Computer Lab to receive credit.
Pass one will read each line of the source file, and begin the process of translating it to object code. (Note: it
will be to your advantage to have a separate procedure handle reading, and perhaps tokenizing, the source file.)
Among other things, this pass will create the symbol table. At the end of the pass, the symbol table should be
printed, showing each symbol together with its location. This pass must also recognize and handle the
assembler mnemonics in addition to the directives START, END, BYTE, WORD, RESB, and RESW. It should
also be able to recognize the following types of errors (note that this is not an exhaustive list):
Illegal label (note: could specify why it is illegal, but not necessary)
Missing or illegal operand on data storage directive (only for BYTE, RESB, and RESW)
Missing or illegal operand on START directive
Missing or illegal operand on END directive (note: you do not need to check if the symbol is defined)
Too many symbols in source program
Program too long
After flagging an error, your assembler should continue processing the source file so that all errors are flagged
in a single run. These errors will not be printed, but must be passed to the second pass of the assembler.
NOTE: Your assembler should not terminate abnormally because of anything (legal or not) in the source
program being assembled.
Since some processing must take place on each line during pass one, it is advantageous to save this information
in an intermediate file for use by pass two. Some things you may wish to place in this file are:
copy of source line
value of location counter
values of mnemonics used (since they had to be looked up)
operand (since you had to get it)
error messages (from pass 1 - best to use codes and not the actual message)
This information should be easy to retrieve – that is, you should not have to break up anything to get this saved
Note that pass two will do the actual encoding of the opcode and operand into object code, and create the listing
file together with all error messages.
Dear client, I have recently built 2 pass assembler for SIC/SE assembly and one pass asembler for MIPs. I can build it for you using C language. Looking FOrward
9 фрилансеров(-а) в среднем готовы выполнить эту работу за $201
Hello Sir. I'm a Computer Engineer. I'm very much experienced in Assembly language programs. I can build you a Two Pass Assembler within the deadline. Let's discuss more through chat.