Syllabus and course info
Class links
- Instructions for setting up a local virtual machine (if you want an alternative to working on the FCCsci server)
- Intel vs. AT&T Syntax
Software needed/used
Except for PuTTY, all of these are already installed on the FCCSCI server. PuTTY, or another SSH client, is the only program you need to download onto your own computer.
- PuTTY (or other SSH client, needed to access server)
- YASM (assembler)
- GCC and tools (compiler and linker, other tools)
- GDB (debugger) with GDB Dashboard
- Emacs, Jmacs, Vim, Nano, Micro, etc. (editor)
FC/CSci resources
- Logging in to and using the FCCSCI Linux server
- Computer Science tutoring through the Academic Support Center
x86-64 Assembly Resources
- x86-64 Assembly Programming with Unbuntu (textbook)
- x64 Cheat Sheet (uses AT&T syntax)
- The complete official reference to the Intel IA-32 and 64 architectures
- x86-64 Machine-Level Programming (goes into the history of x86-64)
- x86 instruction reference
- System-V Unix ABI specification
-
Linux x86-64
syscallreference - Programming with the x87 FPU (reference for x87 floating-point operations)
Calendar, Notes, and Assignments
| Date | Subject | Assignment |
|---|---|---|
| Week 1 | ||
| Mon, Feb. 02 | Introduction; Terminology; Digital Circuits | |
| Wed, Feb. 04 | Basic assembly; converting between numeric representations | |
| Week 2 | ||
| Mon, Feb. 09 | Registers and simple loops | Assignment 1 |
| Wed, Feb. 11 | Arithmetic operations; simple functions | |
| Week 3 | ||
| Mon, Feb. 16 | President's Day Holiday | |
| Wed, Feb. 18 | Branching | |
| Week 4 | ||
| Mon, Feb. 23 | Branching and conditions -- applications | |
| Wed, Feb. 25 | Functions and the stack | |
| Week 5 | ||
| Mon, Mar. 02 |
Functions continued (Lecture files to date) |
|
| Wed, Mar. 04 | Interop. with C; Floating-point operations | |
| Week 6 | ||
| Mon, Mar. 09 | Floating point and vector operations | |
| Wed, Mar. 11 | Floating point, continued | |
| Week 7 | ||
| Mon, Mar. 16 | Instruction-level parallelism; pipelining on MIPS | |
| Wed, Mar. 18 | Bitwise operations | |
| Week 8 | ||
| Mon, Mar. 23 | Midterm Review | |
| Wed, Mar. 25 | Midterm exam | |
| Week 9 | ||
| Mar 30 — Apr 3 | Spring Recess and Cesar Chavez Holiday | |
| Mar 30 — Apr 3 | Spring Recess and Cesar Chavez Holiday | |
| Week 10 | ||
| Mon, Apr. 06 | Midterm Recap | |
| Wed, Apr. 08 | C-style strings; string operations | |
| Week 11 | ||
| Mon, Apr. 13 | Macros part 1 | |
| Wed, Apr. 15 | Macros part 2 | |
| Week 12 | ||
| Mon, Apr. 20 | Macros part 3 | |
| Wed, Apr. 22 | Structures | |
| Week 13 | ||
| Mon, Apr. 27 | MIPS assembly language | |
| Wed, Apr. 29 | MIPS assembly | |
| Week 14 | ||
| Mon, May. 04 | Instruction formats | |
| Wed, May. 06 | Memory Management | |
| Week 15 | ||
| Mon, May. 11 | Operating systems part 1: the boot process | |
| Wed, May. 13 | Operating systems pt. 2: boot process continued | |
| Week 16 | ||
| Mon, May. 18 | Digital circuits | |
| Wed, May. 20 | Final review | |
| Week 17 | ||
| Mon, May. 25 | Memorial Day Holiday | |
| Wed, May. 27 | Final exam | |