2008 CS 301 - Assembly Language
|Meets MWF 3:30-4:30 PM
Room 106 Chapman Building
University of Alaska Fairbanks
3.0 Credits, Fall 2008
Prerequisite: CS 201 (Programming)
|Instructor: Dr. O. Lawlor|
Office: 210C Chapman
Office Hours: 11:15-noon TR (plus!)
exam and overall course
letter grades are posted on NetRun, along with some comments on
your final projects. Thanks for all your hard work in this course!
- The final exam is Wednesday at 3:15pm in the usual classroom,
Chapman 106. See you there!
- Turn in your project
final code here by Wednesday at midnight. I'd
like to see well-commented, well-designed, clear and usable code; and a
big, clear comment at the top describing what the code does, what works,
and how to build and run it. If you think I'll have trouble building
your program, include an exe or a screenshot!
- Project comments
& grades so far are posted on
NetRun. Project presentations are in class Monday and Wednesday next week, according to the following schedule:
|Monday, December 8:
|Jessica L. Gonowon
|Simple Guessing Game
|Derick A. Rhodes
|Tic-Tac-Toe in 32 bits
|Nicklas P. Bywater
|Big int multiplication in assembly
|Matthew V. Chandler
|Big int in C++ & Assembly
|Lucas W. Kovtynovich
|- short break -
|Trevor L. Gillespie
|Bowling scoring in Assembly
|Michael R. Porreca
|Multiprecision arithmetic in decimal
|Nicholas G. Schmidt
|Assembly emulation library
|Wednesday, December 10:
& Derek W. Thomas
|Dain M. Harmon
& James P. Walsh
|128-bit Emulated CPU
|Boot blocks / boot loader
|- short break -
|Thomas J. Voight
|Tiny CPU emulator
|Brent W. Mello
|Encryption in assembly
|Compiler & Optimizer
|Exciting Filler Material!
Project rough draft
code was due on
Blackboard Wednesday, November 26th. (2-week late due date: December 10, scored at 50% off.)
- HW9 was
posted on NetRun, and due Monday, November 24th.
- HW8 was
posted on NetRun, and due Wednesday, November 12th.
- Project topic writeups are due
by midnight on Friday November 14.
Mo Tu We Th Fr
3 4 5 6 7
10 11 12 13 14 <- Project topic writeup due
17 18 19 20 21
24 25 26 27 28 <- Rough draft code due, Thanksgiving break
Mo Tu We Th Fr
1 2 3 4 5
8 9 10 11 12 <- Presentations, last day of class
15 16 17 18 19 <- Final exam, final code due
22 23 24 25 26
29 30 31
- HW7 was
posted on NetRun, and due Friday, October 31th.
- HW6 was
posted on NetRun, and due Friday, October 17th.
- HW5 was
posted on NetRun, and due Wednesday, October 8th.
- HW4 was
posted on NetRun, and due Wednesday, October 1st.
- HW3 was
posted on NetRun, and due Wednesday, September 24th.
- HW2 was
posted on NetRun, and due Wednesday, September 17th.
- HW1 was posted
on NetRun, and due Wednesday, September 10th. Just get a NetRun account, then log in to NetRun, and HW1
should be listed at the bottom of the screen under CS 301 (Fall 2008). If you
don't get your password, or you can get it but don't see CS 301 or HW1
listed, please email me!
- Lecture Notes:
Course Review for Final Exam
Syscalls and Operating System Calls from Assembly
Graphics Processing Unit (GPU) Programming
Biological "Machine Code"
Branching from SIMD Code
A nice C++ interface for SSE operations
Streaming SIMD Extensions (SSE) Parallel Floats
Faster Floating Point with SSE: Streaming SIMD Extensions
Speed of Floating-Point Operations and Weird Floats
Bits used to Implement Floating-Point Numbers
Tradeoffs Between Big and Small Variables, and Loop Unrolling
Speed of Memory Access
Measuring Performance via the Scientific Method
Course Review for Midterm
Signed vs Unsigned Numbers
Implementing Addition, Multiplication, and so on
Memory Allocation Using 'malloc'
"Inline" Assembly: Mixing Assembly and C++
Structures and Classes
Receiving Calls from C/C++: The Linker
Review & Survey of Memory Access
Stack Frames, and Call and Return
Pointers, Pointer Arithmetic, and Messy Uncertain Death
Complex Control Flow: Real C++ Loops
Elsewhere: Calling Functions and Branching in Assembly
Names: Big and Little Endian Memory Access
Table-Driven Programming and Machine Code
Base Conversion: Binary and Hexadecimal
Digital Binary Computation with Fingers and Circuits
- NetRun is a
network-accessible way to compile and run code
from inside any web browser. You'll need to activate your account
and get a password from the NetRun Password Reset
page. You'll then be emailed a password so you can log in to
We'll be using this for all the homeworks, so get an account and try the system
out! Read the NetRun
Help. Do send me bug reports!
In particular, if the bottom of your NetRun
page is missing the following 301 stuff, send me an email!
- Course syllabus
which includes dates to remember, the grading policy, and a course outline.
- Dr. Hartman's 2003 CS301 page has a good set of links to reference documentation.
O. Lawlor, email@example.com
Up to: Class Site, CS, UAF