“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
John Woods

CSE 2208 - Assembly Programming Language


Rationale: This course aims to provide a strong foundation to understand modern computer system architecture and code the computer with the low level assembly language. The course is structured to work with memories and registers and logic operations.


  • To understand the internal architecture of processors.

  • To control CPU with memory in low level languages

  • Understand how high level language works based on low level language


  1. Describe the operation of various logic gates and the theory (Boolean algebra) behind them.
  2. Distinguish between combinational and sequential logic and discuss the function of the clock.
  3. Describe how a CPU performs instructions during the fetch-decode- execute cycle and how the memory supports its actions.
  4. Design simple digital logic to produce a specific result from given inputs and/or simplify digital logic to improve the efficiency of producing a result.
  5. Describe how information of various data types are represented in a computer.
  6. Explain how standard arithmetic operations (+, -, *, and /) are performed by the hardware.
  7. Read, write, and debug programs in assembly language.
  8. Explain the uses of various machine addressing modes and why they are used.
  9. Use system services in a program.
  10. Explain the internal workings of the machine on a procedure call and describe the structure of the call frame.
  11. Distinguish between situations in which procedures or macros are appropriate.

Reference Books

  • Assembly Language Programming and Organization of the IBM PC - Ytha Yu


Declaration: Various materials are collected from Internet to make these slides. These slides are to help taking the class and can be used as a guideline.
  1. Topic 01 Introduction.pdf (Screencast: Introduction to Assembly Programming)
  2. Topic 02 Intel 8086 Introduction.pdf (Screencast: Topic 2 Intel 8086 Intro | Assembly Language | In Bangla )
  3. Topic 03 Syntax and Fields.pdf (Screencast: Topic 3 Syntax and Fields | Assembly Language | In Bangla )
  4. Topic 04 Add two single digits and Introduction to emu8086 (Screencast: Topic 4 Emulator emu8086 Introduction | Assembly Language | In Bangla )
  5. Assignment 1 (Deadline: Sept 24, 2020 6.00pm) – Submit within Google Classroom
  6. Topic 5 Print Double Digits (Screencast: Topic 5 Print Double Digits)
  7. Topic 6 Print Strings and Input Digits (Screencast: Topic 6 Print Strings and Input Digits)
  8. Topic 7 Label, Jump, Compare (Screencast: Label, Jump, Compare)
  9. Topic 8 Loop (Screencast: Loop)