3 Attendance and Grading PolicyTop1 CIS250  Class Information2 Syllabus

2 Syllabus

2.1 Catalog Description

CIS250 / 3 cr. hrs./3 periods (3 lec.)
Prerequisite(s): CIS 131. Recommended: Consult instructor for alternative prerequisite(s).

2.2 Description:

Beginning assembly language programming. Includes number systems, machine organization and different addressing methods. Also includes array processing, indexing, sorting, stack parameter passing, internal and external procedures, interfacing to C function, status bits, logical and bit-level operations, protected mode instructions, and macros.

2.3 Performance Objectives

  1. Define various Machine Architecture features.
  2. Design, write, and debug assembly programs.
  3. Use various addressing methods.
  4. Illustrate understanding of internal and external procedures.
  5. Convert numbers between different bases.
  6. Evaluate math and logical operations using binary and hexadecimal number systems.
  7. Plan solutions using array processing, indexing, and sorting.
  8. Illustrate how the stack is affected by various statements and parameter passing.
  9. Demonstrate I/O usage through provided function or system calls.
  10. Demonstrate proficiency in above concepts through code.

2.4 Course Outline

  1. Binary, Octal, Decimal, and Hexadecimal number systems
  2. Machine Architecture
    1. RISC/CISC overview
    2. User model/supervisor model overview
    3. Execution (fetch/execute cycle)
    4. Memory & Memory management
    5. Instruction pipelining, cache memory
    6. Registers
    7. Status and control registers
    8. Addressing Modes
    9. Instructions
      1. Instruction coding
      2. Processor modes, user & privileged
      3. Defined, Illegal, Reserved
      4. Arithmetic
      5. Logical, Shift, Rotate
      6. Comparison
      7. Conditional and unconditional jumps
      8. Subroutine calls and returns
      9. Floating point
      10. Input/Output (I/O)
      11. Other instructions as appropriate
    10. I/O devices
    11. Boot process
  3. Program design
  4. The Assembler
    1. Program syntax
    2. Source creation using a text editor
    3. Translation
    4. Linking
    5. Pseudo ops
    6. Macro definition and use.
    7. Storage allocation, static and dynamic
  5. The stack
    1. Parameter Passing on the Stack
    2. Calling sequences
    3. Internal and external procedures
    4. "C" language calling sequence
  6. Array Processing, Indexing
  7. Sorting
  8. Program debugging and testing
  9. Optional: performance issues
  10. Optional: program profiling
  11. Optional: programmer productivity issues

2.5 Course bank note

This class is expected to be taught on an Intel Pentium compatible platform on most cases. If a class is taught on a different platform various modifications to the objectives and outline might be necessary.

% % Copyright Louis Taber, PCC September 2004

2.6 Textbooks


Instructor: Louis Taber, louis.taber.at.pima at gmail dot com (520) 206-6850
My web site in California
The Pima Community College web site

3 Attendance and Grading PolicyTop1 CIS250  Class Information2 Syllabus