CMSC 313: Computer Organization & Assembly Language
Section 0201

Chintan Patel
Office Hours:Mon. and Wed. 10:00 AM - 11:30 AM  ITE 322

David Bourner
Office Hours: Mon. and Wed. 2:00 PM - 4:00 PM ITE 314
Phone: 410-455-4338

Teaching Assistants and Office Hours:
Yan Hao: Tue. and Thrs.  2:30 PM - 3:30 PM ITE 340
Joel Land: Tue. and Thrs.  3:30 PM - 4:30 PM ITE 344
Yang Song : Mon. and Wed. 1:00 PM - 3:00 PM ITE 349
Andy Rangnekar: Mon. and Wed. 5:30 PM - 7:30 PM ITE 344

Meeting Time and Location:
Mon. and Wed.  5:30 PM - 6:45 PM ITE 233


Check periodically for important class announcements

12/15: Homeworks and written sections of the Digsim assignments will be available from Yang Song from 12 noon on Tuesday 16 Dec for pickup.

12/4: To help you with revision ahead of the final exam, a set of outline learning goals are enclosed in summary form here.

11/26: Please note that there has been a change to the scheduled date for the final examination. This will be held on Monday, Dec 15
in ITE-233 from 6:00 - 8:00 p.m.

11/18: Tomorrow, we will be meeting in ITE-242 to carry out the second inclass lab. Here is the worksheet
NOTE:- You do not need to print this out for tomorrow's session. Hardcopies of the handout will be made available.

11/15: Information about DigSim: start now, info.

11/10: This is the item we discussed in class, the priority encoder

10/28: Here is the Edison work-bench link (Go to "Demos" page and select EDISON)

10/07: Due date for project 3 will be Fri. 10/10 (before midnight)

10/06: Joel Land's office hours have changed. Check above.

09/22: Due date for project 2 will be Fri. 09/26

09/16: The class name for submit is cs313_0102 rather than cs313_0201 as given in the project handout.

09/02: Office hours for David Bourner and all the TA's are posted above. Homework 1 assigned on 09/03. Check homeworks section below.

Course Material

Course Description and Syllabus

Lecture 1: Introduction and Overview

Lecture 2: Data Representation I

Lecture 3: Data Representation II

Lecture 4: i386 Assembly Language I

Lecture 5: i386 Assembly Language II

Lecture 6: i386 Assembly Language III

Lecture 7: i386 Assembly Language IV

Lecture 8: Examples

Lecture 9: Compiling, Assembling and Linking Lecture 10: Subroutines Lecture 11: The Stack and C Functions

Lecture 12: Linux Memory Model

Lecture 13: Interrupts & System Calls

End of Midterm Exam Material

Lecture 14: Introduction to Digital Logic

Lecture 15: Digital Logic Elements

Lecture 16: Boolean Functions and Truth Tables

Lecture 17: Combinational Logic Components

Lecture 18: Circuit Simplification I

Lecture 19: Arithmetic Circuits & Flip Flops

Lecture 20: Introduction to Finite State Machine Design

Lecture 21: Circuit Simplification II

Lecture 22: Review of FSM and Cct Simplification II

Lecture 23: I/O and Memory


Homework 1Due Wed. 09/10

Homework 2Due Wed. 09/17 

Homework 3Due Mon. 11/3

Homework 4Due Mon. 11/10

Datasheet to accompany homework 4

Homework 5Due Mon. 11/24


Project Policy

Project 1 : Due Wed 09/17

Project 2 : Due Fri 09/26

Project 3 : Due Fri 10/10

Project 4:Due Fri 10/17

Digsim Simulation Exercises

Digsim 1 : Due Mon 12/1

Digsim 2 : Due Mon 12/8

Assembly language Programming Help

Help with the submit command


NASM documentation in HTML,PDF,Postscript,RTF and plain text.

Using gdb for Assembly Language Debugging.

System Calls in Linux Assembly.

C Function Call Conventions and the Stack

External Links

Murdocca & Heuring Textbook Site

A programmer's guide to Linux Assembly Programming

Official NASM site

IA-32 Intel Architecture Software Developer's Manual.