Feb 02, 2025  
DRAFT 2025-2026 College Catalog DRAFT 
    
DRAFT 2025-2026 College Catalog DRAFT [ARCHIVED CATALOG]

CIS 250 - Introduction to Assembly Language

3 Credits, 4 Contact Hours
2 lecture periods 2 lab periods


Beginning assembly language programming. Includes number systems, machine architecture, program design, the assembler, the stack, array processing and indexing, and sorting. Also includes program debugging and testing, performance issues, program profiling, and programmer productivity issues.

Prerequisite(s): CIS 131  
Gen-Ed: Meets AGEC Options; Meets CTE - Options



Button linking to AZ Transfer course equivalency guide  

Course Learning Outcomes
  1. Define various Machine Architecture features.
  2. Demonstrate use of basic RISC instructions.
  3. Explain combinational and stateful logic of working CPU.
  4. Describe basic ALU implementation.
  5. Demonstrate understanding of internal and external procedures.
  6. Convert numbers between different bases.
  7. Compare math and logical operations using binary and hexadecimal number systems.
  8. Combine assembly with other languages such as C, C++, etc..

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 and memory management
    5. Instruction pipelining, cache memory
    6. Registers
    7. Status and control registers
    8. Addressing modes
  3. Instructions
    1. Instruction coding
    2. Processor modes, user and 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/0)
    11. Other instructions as appropriate
  4. Program Design
  5. 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
  6. The Stack
    1. Parameter passing on the stack
    2. Calling sequences
    3. Internal and external procedures
    4. “C” language calling sequence
  7. Array Processing, Indexing
  8. Sorting
  9. Program Debugging and Testing
  10. Performance Issues (Optional)
  11. Program Profiling (Optional)
  12. Programmer Productivity Issues (Optional)