Fall 2016, Zemoudeh
CSE 565: Systems Programming
School of Computer Science and Engineering
California State University, San Bernardino

Last modified: Nov 28, 2016

Homework 4, Due Mon, Dec 5

Homework 3, Due Wed, Nov 23.

Project 3, Due Mon, Dec 5
Implement the linking loader algorithm in Fig 3.11. Simulate memory with an array of chars (bytes).
char mem[0x10000];
Your loader should be able to link and load object programs in Fig. 2.17, and separately object programs in Fig. 3.9 to produce the memory content in Fig. 3.10(a). The output is memory dump after all programs are linked and loaded.

Midterm: Wed, Nov 9

Project 2, Due Wed, Nov 2
Implement a 2-pass SIC/XE assembler by modifying your SIC assembler from Project 1. You are required to handle all 4 instruction formats, immediate and indirect addressing, and PC and Base relative addressing. Your new assembler must be able to assemble the program in Fig 2.5 into the listing in Fig 2.6 and the object program in Fig 2.8. Your modification must be minimal to the structure of the assembler in Project 1.
Hand in printouts of your program, the input file, and the output files.

Homework 2, Due Mon, Oct 24.

Project 1, Due Mon, Oct 17
Complete the development of the two-pass SIC assembler given in Fig 2.4 and started in the link below. Refer to Appendix A for a complete listing of SIC instructions (those instructions without an X under the Notes column.) At the minimum, your program should assemble (translate) the assembly program given in Figure 2.1 to the object program given in Figure 2.3 and the listing given in Figure 2.2.

Follow the algorithm in the text very closely. You may perform more error checking than you find in the algorithm.

Hand in a printout of your program, the input file, and the corresponding output files.

SIC Assembler

Homework 1, Due Mon, Oct 10.