Apr 25, 2024  
2021-2022 College Catalog 
    
2021-2022 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.


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
  9.     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
  1. Program Design
  2. 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
  1. The Stack
  1. Parameter passing on the stack
  2. Calling sequences
  3. Internal and external procedures
  4. “C” language calling sequence
  1. Array Processing, Indexing
  2. Sorting
  3. Program Debugging and Testing
  4. Performance Issues (Optional)
  5. Program Profiling (Optional)
  6. Programmer Productivity Issues (Optional)


Effective Term:
Full Academic year 2021/22