Apr 17, 2024  
2022-2023 College Catalog 
    
2022-2023 College Catalog [ARCHIVED CATALOG]

CIS 250 - Introduction to Assembly Language

3 Credits, 3 Contact Hours
3 lecture periods 0 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  
Recommendation: Consult instructor for alternative prerequisites before enrolling in this course.
Gen-Ed: Meets AGEC-S Options requirement




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. Explain how stack is affected by various statements and parameter passing.

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)