Computer Science 281
Assembly Language & Computer
Architecture
I. Introduction
A. Catalog description
Introduction to machine organization,
machine structure, data representation, digital logic and
assembly language programming on a RISC based
architecture.
Prerequisites: CSCI 261 - Computer
Science II.
B. Learning Objectives
The purpose of this course is to bridge
a major gap in the students "Liberal Education." This is
the only required computer science course where the student is
able to see what lies underneath high-level programming
languages and operating systems. Students are introduced to
basic digital circuit design and fundamental hardware
implementations. Students will be expected to be able to
utilize logic and boolean algebra to design and verify more
complex circuitry from these basic components. Assembly
language programming exercises provide students with an
understanding of machine language and reveal the implementation
of high-level language constructs. Students will be expected to
be able to design and implement assembly language programs to
handle pointers, functions and objects created in a high-level
programming language such as C++.
C. Prerequisites
CSCI 261 - Computer Science II. A grade
of C- or better is required in prerequisite
courses.
II. Required Topics
A. Digital circuit design
1. Combinational and sequential logic
circuits
2. Boolean algebra
3. Decoders, multiplexers and
adders
4. Clocks
B. Computer Architecture
1. CPU structure
2. Microcode
3. RISC versus CISC
architectures
4. Caching
5. Pipelining
C. SUN SPARC assembly language
1. Assembly process
2. Data representation
3. Register usage
4. Data and arithmetic
instructions
5. Logical and control
instructions
6. Subroutines and parameter
passing
7. Data structures
8. Interfacing assembly and
C
III. Bibliography
To be added