University of Maryland Baltimore County

Department of Computer Science and Electrical Engineering

CMSC 313-101, Spring 2003

Computer Organization and Assembly Language 

    Monday and Wednesday 2:00 PM - 3:15 PM, ECS 022

     

    Course Information

     Instructor and TA Contact Information

     Course Syllabus

     Grade structure and policy

     Lecture notes

     Homework assignments

     Programming Exercises

     Interesting Links

    Course Instructor

    Dr. Mohamed Younis

    Office: ECS 233-D

    E-mail: younis@cs.umbc.edu

    URL:    http://www.cs.umbc.edu/~younis

    Office hours: Monday and Wednesday 4:15 PM - 5:15 PM 

    Research interest:

    Real-time systems, Fault tolerant computing, Compiler-based analysis, Operating systems, Tool support for embedded systems, Wireless Communication Networks

    Teaching assistant

    Mr. Wenze Xi

    Office: ECS 002

    E-mail: wxi1@csee.umbc.edu 

    Office hours: Tuesday and Thursday 10:00 AM -11:00 AM

    Back to top

    Course Syllabus

    Objective:

    This course covers the basics of computer organization with emphasis on the lower level abstraction of a computer system including digital logic, instruction set and assembly language programming. Topics includes data representation, logic gates, simplification of logical expressions, design and analysis of simple combinational circuit such as decoders and multiplexers, flip-flops and registers, design and analysis of simple synchronous sequential circuit, random-access and read-only memories, instruction set architecture and programming in assembly language. The Intel 80386 instruction set is used as a case study with programming experience in the Linux environment. 

    Prerequisites:

    1. Computer Science II  (CMSC 202) 

    2. Discrete Structures    (CMSC 203)

    Reference Books:

View Larger Cover Image

Principles of Computer Architecture, 1/e, 2000

Miles Murdocca, Rutgers University

Vincent P. Heuring, University of Colorado, Boulder

Prentice Hall,  ISBN 0-201-43664-7

0-13-087940-1

Linux Assembly Language Programming, 2001

Bob Neveln, Widener University

Prentice Hall PTR,  ISBN 0-13-087940-1

Course Outline

1. Introduction to Computer Systems Organization

3. Instruction Set Architecture

4. Introduction to Assembly Language

5.  Analysis and Design of Combinational Logic

6. Introduction to Sequential Circuits

Back to top

Grade Structure and Policy

Course work

Grade distribution

Programming Exercises

20%

Homework Assignments

30%

Midterm Examination

25%

Final Examination

25%

Course grade

Range

A

90% - 100%

B

80% - 89.9%

C

70% - 79.9%

D

60% - 69.9%

Back to top

Lecture notes

Lecture

Date

Subject

1

January 27, 2003

 Introduction and overview

2

January 29, 2003

 Data Representation

3

February 3, 2003

 Binary Arithmetic

4

February 5, 2003

 Floating Point Representation

5

February 10, 2003

 Assembly Programming Model

6

February 12, 2003

 80386 machine organization 

7

February 17, 2003

 No Class

8

February 19, 2003

 No Class

9

February 24, 2003

 80386 Assembly Instructions

10

February 26, 2003

 80386 Assembly Instructions (Cont.)

11

March 3, 2003

 Machine Language

12

March 5, 2003

 Memory Addressing

13

March 10, 2003

 Memory Addressing (Cont.)

14

March 12, 2003

 Stack Operations and Subroutines

15

March 17, 2003

 Linux Memory Model

16

March 19, 2003

 Midterm examination

17

March 31, 2003

 Processor Interrupts

18

April 2, 2003

 Compilation and Linking + Introduction to Logic Circuits

19

April 7, 2003

 Circuit Implementation of Gates

20

April 9, 2003

 Implementation of Logic Functions

21

April 14, 2003

 Designing with Digital Components

22

April 16, 2003

 Reduction of Combinational Logic

23

April 21, 2003

 Optimizing Combinational Circuits

24

April 23, 2003

 Introduction to Sequential Circuits

25

April 28, 2003

 Flip Flops

26

April 30, 2003

 Finite State Machines

27

May 5, 2003

 Designing Finite State Machines

28

May 7, 2003

 Optimization of FSM Design

29

May 12, 2003

 Memory
30

May 19, 2003

 Final Exam 1:00 PM -- 3:00 PM

    Back to top

    Homework Assignments

Assignment

Date Out

Due Date

Assignment #1

January 29, 2003 February 5, 2003

Assignment #2

February 5, 2003 February 17, 2003

Assignment #3

April 9, 2003 April 16, 2003

Assignment #4

April 16, 2003 April 23, 2003

Assignment #5

April 23, 2003 April 30, 2003

Assignment #6

April 30, 2003 May 7, 2003

 

    Back to top

    Programming Exercises

    Exercise

    Date Out

    Due Date

    Exercise #1

    February 24, 2003 March 5, 2003

    Exercise #2

    March 5, 2003 March 14, 2003

    Exercise #3

    March 12, 2003 March 19, 2003

    Exercise #4

    March 19, 2003 April 9, 2003

     

    Back to top

    Interesting Links

Back to top

Last Revised: April 29, 2003