# CSC 371 Systems I

## Instructor: Dr. Stephen Bloch Fall, 1997

This course meets from 3:05-4:20 PM TTh in Business 39. The textbook will be A Programmer's View of Computer Architecture, by James Goodman and Karen Miller. It comes with a software package named SPIMSAL, which simulates a MIPS RISC computer at the assembly-language level. If you don't understand or don't like my explanations of things, take a look at the University of Wisconsin's page on a similar course, including homework assignments, exams, and lecture notes from Karen Miller, one of our textbook authors.

The syllabus is available in LaTeX, DVI, Postscript, and HTML.

A schedule of lectures tells what I plan to talk about, and what I expect you to have read, by each class meeting.

## Homework assignments

Homework 1 assigned 18 Sept, due 25 Sept
1.8, 1.11, 1.14, 2.3, 2.12, 2.15
For problem 2.15, use a procedure to decide whether a given character is or is not punctuation; see problem 2.13 for ideas on how to do this.
Homework 2 assigned 25 Sept, due 14 Oct
3.10, 3.12, 4.5, 4.11, 4.15
Homework 3 assigned 21 Oct, due 6 Nov
See separate file
Homework 4 assigned 30 Oct, due 13 Nov
7.4, 7.7, 7.16, 8.4, 8.6, 8.8
(except that, as Tom points out, I already posted my solution to 8.8 on a Web page. I still recommend that you work it out on your own, to see whether you can....)
Homework 5 assigned 21 Nov, due 9 Dec
9.4, 9.6, 9.10, 9.12
10.1, 10.2, 10.5, 10.6, 10.16
For 9.4, the problem is a little unclear. Assume that your caller passes the addresses of two integers, using the standard MIPS argument registers.
For 9.12, feel free to do integer input using the SAL "get" statement, although you might want to try using syscall instead (see p. 8 of the SPIM documentation). Write your own output routine taking two arguments: the number to print, and the radix. This routine may use the SAL "put" statement for characters, or "puts" for a whole string, or (again) you may try using syscall instead.