Welcome to California State University, Chico -- Today Decides Tomorrow
Search for
 
Search in
 

California State University, Chico
 
CSCI 221: Assembly Language Programming Back to List
Previous Page Next Page
 
Prerequisite: CSCI 112

Catalog Description:
Topics include number systems and their rules for arithmetic; basic central processing unit (CPU) organization concepts such as registers, data paths, the arithmetic and logic unit (ALU) and the interface to random access memory (RAM): instruction formats, addressing modes and their use with a variety of data structures; and parameter passing techniques including the use of a stack frame. The use of good programming methodologies to develop and document algorithms at the assembly language level is emphasized. Formerly CSCI 051A. CAN CSCI10.

Course Objectives:
  • Introduce number systems and their rules for arithmetic and overflow detection
  • Introduce the architectural organization of a contemporary Reduced Instruction Set (RISC) CPU chip
  • Provide students with an understanding of the low-level operation and capabilities of the CPU
  • Explain the sequence of events and data paths used in execution of an assembly language program
  • Give students the ability to write, test, and document assembly language programs
  • Provide students with an understanding of how to write reentrant functions
  • Provide students with an understanding of the concept of memory mapped I/O and interrupts
  • Provide students with an understanding of how ti implement a pepelined CPU and the special programming considerations dealing with delayed loads and branches
  • Introduce the IEEE floating-point standard and the floating-point instructions of the CPU

Course Outcomes:
Students shall be able to:
  • Describe the basic functional components, and the fetch-execute cycle of a CPU
  • Work with numbers in any base, and convert numbers from one base to another
  • Show the binary representation of data and instructions in the memory of a computer
  • Detect when overflow occurs when performing binary arithmetic
  • Break a complex task into the simple operations that can be performed in assembly language
  • Document an assembly language program so that it may be understood by others
  • Test an assembly language program for correct operation, diagnose and correct errors
  • Show how peripheral devices are controlled by an assembly language program via polling or interrupts
  • Develop assembly language code that will run on a pipelined implementation of a CPU
  • Make floating-point number conversions between decimal and IEEE 754 binary representation

Class/Laboratory schedule:
  • One hundred minutes a week classroom activity
  • One hundred minutes a week laboratory activity
Topic Percentage Hours
     
Algorithms 30% 13.5
Data Structures 10% 4.5
Software Design 20% 9
Concepts of Programming 10% 4.5
Computer Organization and Architecture 30% 13.5
Relationship of Course to Program Objectives:
This course supports the achievement of the following program objectives:

All students will be able to analyze and solve computing problems, or problems in related areas, and to continually upgrade their knowledge and skills.
 
Computer Science | Welcome | Important Dates! | Advising | Facilities | News | Career Opportunities | Mission | Industry Involvement | Assessment Tools | Alumni | Research | BS in Computer Science | BS in Computer Information Systems | MS in Computer Science | Minor in Computer Science | Minor | Online Program
CSU, Chico:
Home | Admissions | Bookstore | Catalog | Schedule | Library | Help

This page and its contents © 2003 College of Engineering, Computer Science, & Construction Management
California State University, Chico
College of Engineering, Computer Science, & Construction Management
California State University, Chico
Chico, CA 95929-0003
530-898-5963
webmaster@ecst.csuchico.edu

Maintained by Freedom™.   Developed by Diverse Network Associates™.

Department of Computer Science Preparing Graduates to Solve 21st Century Problems