CS61:Resources
From CS61 Wiki
Computer Science 61
Systems Programming and Machine Organization
Resources
To help you prepare for the midterm, we have posted the midterm from last year: midterm.pdf. Here are the solutions: midterm_solutions.pdf.
Here are some review slides:
Malloc_optimization.pdf. Caching_virtualmem.pdf.
Solutions to the Fall 2009 Midterm are here.
You may find the following resources and handouts useful in the class.
- Intel 64 and IA-32 processor manuals
- This is your source for the complete details of the x86 processor architecture. Volume 1 provides background on the overall processor architecture and operation. Volume 2a and Volume 2b provide details on individual instructions.
- Intel x86 instruction set summary
- Not up to date with most recent processor generations, but a good high-level summary of the most commonly-used instructions.
- Sun's x86 assembly reference
- You may find this easier to use than the Intel manuals, since it uses the same AT&T syntax that we are using in class.
- GNU Assembler Manual
- Good reference manual on 'gas', the GNU assembler, which is used in the course (and by gcc internally).
- In particular be sure to see the section on x86 specific features.
- AT&T and Intel Assembler Syntax
- Differences between the AT&T (a.k.a. gcc/gas) and Intel assembler syntax. We use AT&T syntax in this course, but some tools (and books) use the Intel syntax.
- Using graphical (x-windows) nice applications on your own computer
- These documents from CS50 and CS51 describe how to log in and use graphical applications on nice (such as ddd): Windows, OSX, and Linux.
- GDB Documentation
- A must read for this course.
- RIO package - csapp.c and csapp.h
- Wrappers to UNIX IO functions that provide better error handling
- C for Java Programmers
- A collection of resources for Java programmers who need to learn C. For this class, you especially need to understand how C arrays and pointers work!
