Computer Systems Organization
Instructor: Benjamin Goldberg
V22.0201.002 Fall 2009
- Mondays and Wednesdays 3:30pm - 4:45pm
Room 101 Warren Weaver Hall
Structured Computer Organization, 5th ed.
by Andrew S. Tanenbaum.
Pearson Prentice Hall, 2006.
- The C Programming Language, 2nd. ed.
by Brian Kernighan and Dennis Ritchie
Prentice Hall 1988.
NOTE: If you have a different book on C, that's fine.
Class Mailing List
- Programming Assignments
Programs written in class
Handwritten Digital Logic Lecture Notes
Handwritten Pipelining Lecture Notes
Handwritten Cache Lecture Notes
You will need to use the gcc C compiler for this course. You
should also use the emacs editor to write your code. You can
download GCC and emacs for your computer from the following sources:
- For Windows:
Cygwin - A UNIX environment for Windows (click on "install now").
When asked to select packages, click "devel" and then
scroll down to make sure that the box in the "bin" column
next to "gcc" is checked. This will ensure that gcc is included
with the cygwin installation. Also in "devel", click on the box in
the "bin" column next to"make: The GNU version of the "make" utility".
Then click on "editor" and make sure that the box in the "bin" column
next to "emacs" is checked. This
will make sure that the emacs editor is installed.
If you prefer, you can use an external implementation of emacs for Windows
(i.e. one that does not run under cygwin). Click here.
- For Mac OS X: Download the XCode package from Apple Developer Connection.
You will need to register at the site. A nice version of emacs, Carbon Emacs, can be found
As discussed in class, GCC on Mac OX will not work with assembly in Intel syntax. You can
either work in AT&T syntax, or run Linux or Windows using Boot Camp, Parallels, or VMware.
- For Linux: Most Linux implementations come with gcc and emacs already installed, or with
easily installable gcc and emacs packages. See the documentation for the version of Linux
you are running.
- Handout from first day of class, including sheet on
powers of 2, logs, binary, and hex
- Link to a web page listing the x86 Instruction Set (works with IE and Firefox).
- Link at a A Tiny Guide to Programming in 32-bit x86 Assembly Language from the University of Virginia.
- Intel Architecture Software Developers Manual (Intel Syntax for Assembly))
- 386 Assembly Reference Manual (AT&T Syntax)
- Debugging with GDB
- Sol's Graphics for Beginners. A nice tutorial for using SDL
- Another x86 assembly language reference found at the University of Virginia