CSE 225 : Assembly Language Programming

Lectures, Arizona State University, 2015

Assembly language programming, including input/output programming and exception/interrupt handling. Register-level computer organization, I/O interfaces, assemblers, and linkers. Motorola-based assignments.

Pre-reqs

The official prerequisite is CSE 100 (or 110 or 200) and CSE120/EEE120 Digital design fundamentals. By topics I expect you have

  1. Programming skill in a high-level language (C, C++, Java or Pascal), including arrays and indexing, looping, data types, record structures, procedures, conditional and case (switch) branching.
  2. Binary, octal, hexadecimal, ASCII data representations.
  3. Two’s-complement arithmetic.
  4. Introductory Boolean logic and minimization techniques.
  5. Building blocks of digital circuits, AND, OR, NOT, XOR gates, full adder, multiplexor, and decoder.

Syllabus

  1. Computer organization and architecture: 3 weeks (three lecture hours per week)
  2. Addressing modes and program examples using different addressing modes: 2 weeks
  3. Instruction set and program examples using different instructions in different addressing modes: 2 weeks
  4. System Development Process, 1.5 weeks
  5. Subroutines, parameter passing and stack, 1.5 weeks
  6. Peripheral Programming, 2 weeks
  7. Interrupts and exceptions, 2 weeks