This course introduces students with the internal architecture, Assembly Language programming concepts and I/O interfaces of 8086 & 8088 microprocessors. Students will develop comprehensive understanding of the Intel x86 software programming model and instruction set. Course will focus on Intel x86 assembly programming techniques. Students will also learn 8086/8088 modes of operations, interfacing of memory and I/O devices, pipelining and Cache memory hierarchy.


CLO: 1. Illustrate knowledge of firmware writing for microcontrollers and microprocessor using assembly and C language programming (Level: C2)
CLO: 2. Configure and program timers, interrupts and I/O interfaces atmega-32 microcontroller and program testing and debugging using software development environment. (Level: P2)
CLO: 3. Design and Implement solution to a real life problem using I/O interfaces of a microcontroller and firmware development. (Level:P4).


  1. Introduction to micro-controller architecture and its programming.
  2. Input output pin/port programming using C language.
  3. External Interrupts programming using Atmega-32.
  4. Timers and counter programming using Atmega-32.
  5. PWM generation and motor speed control using Atmega-32.
  6. Programming and interfacing ADC using Atmega-32.
  7. Overview of 8086/8088 assembly programming and addressing mode.
  8. 8086/8088 assembly programming using Arithmetic Instructions.
  9. 8086/8088 assembly programming using Control flow Instructions I.
  10. 8086/8088 assembly programming using control flow instructions II.
  11. Stepper motor interfacing using Atmega-32.
  12. SPI for One Master and One Slave using Atmega-32.