Path: Home => AVR-Overview => Course Logo
Course logo

An assembler course in 11 presentations

Here is an assembler course for starters. It presents both, the hardware of AVRs and its programming in assembler.

All lectures come as 9-to-22 page long PDF. The lectures include two or three tasks and questions at the end, by which you can test if you understood anything correct.

If you have any questions, likes or dislikes feel free to email me at info( at )

Links and materials for the assembler course


All lectures in one document: here, 207 pages, 2.8 MB.
  1. Lecture 1: Lecture 1: Program execution, registers, writing assembler source code with avr_sim and assembling and simulating it
  2. Lecture 2: Lecture 2: Port pins, port registers, port as output and as input, timing of instructions, scope view in avr_sim, sourcing and sinking current on outputs, input pin branching
  3. Lecture 3: Lecture 3: Types and functions of registers, counting registers up and down, conditional branching, breakpoints, timing of loops, nested loops, directives
  4. Lecture 4: Lecture 4: Second blinking, 24-bit loops, execution timing, macros, subroutines, stack, memory addressing, stack use
  5. Lecture 5: Lecture 5: In-System-Programming binary code, ISP interface, breadboard application, Studio 4.19 programmer tool, clocking with a crystal, fuses
  6. Lecture 6: Lecture 6: Timers/Counters, prescaler and clocking from input pins, overflow, comparers, pin toggle with timer, 16-bit timer and tone generation, CTC mode of timers
  7. Lecture 7: Lecture 7: Interrupts, timer interrupts on overflow and compare, interrupts and stack, interrupt vectors, interrupt service routine, interrupt priority, interrupt and SREG, timers in PWM mode, digital-to-analog conversion with PWM
  8. Lecture 8: Lecture 8: Analog-to-digital conversion, multiplexing, left-adjust, ADC interrupt, EEPROM segment, EEPROM reading, EEPROM writing, EEPROM interrupt
  9. Lecture 9: Lecture 9: External interrupts, external PCINTs, pin identification, key bouncing, analog comparers, serial communication
  10. Lecture 10: Lecture 10: Integer math, positive and negative integers, adding/subtracting/multiplying/dividing 8 and 16 bits, software and hardware multiplication, binary to hex ASCII, binary to decimal ASCII
  11. Lecture 11: Lecture 11: Table organization in assembler, reading table content, auto-incrementing pointers, displaced table content, decimal conversion with tables, register pairs as pointers

Questions and tasks

The questions and tasks appear at the end of each lecture. Here are the respective pages naked as PDF.
  1. Q&T 1: Q&T 1
  2. Q&T 2: Q&T 2
  3. Q&T 3: Q&T 3
  4. Q&T 4: Q&T 4
  5. Q&T 5: Q&T 5
  6. Q&T 6: Q&T 6
  7. Q&T 7: Q&T 7
  8. Q&T 8: Q&T 8
  9. Q&T 9: Q&T 9
  10. Q&T 10: Q&T 10
  11. Q&T 11: Q&T 11

Materials and Tools

The following links provide materials and tools and some hints on finding those on the internet.


This provides direct links to selected items.


An incomplete list of links to tutorials for AVR assembler programming. ©2020 by