Apr 25, 2024  
2023-2024 College Catalog 
    
2023-2024 College Catalog [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 requirement; Meets CTE - Options requirement



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)


Effective Term:
Fall 2023