5/00

 

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 student’s "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