Pure AVR Assembler programming

That seems to be the valid explanation and the correct fix.

Programs which use <avr/io.h> and friends are expected to be C code, but noone prevents these headers and their definitions to be used in assembler, so it’s just up to the programmer’s usage of them.