avr-gcc -mmcu=atmega328p -c blink.asm -o blink.o avr-gcc -mmcu=atmega328p blink.o -o blink.elf avr-objcopy -O ihex blink.elf blink.hex Or using original AVRASM32:

sudo apt update sudo apt install gcc-avr avr-libc avrdude binutils-avr That's it. You now have avr-as , avr-ld , avr-objcopy , and avrdude . Install Homebrew first, then:

; Blink LED on PB5 (Arduino Uno pin 13) – ATmega328P .nolist .include "m328pdef.inc" ; Register names .list .org 0x0000 rjmp RESET

RESET: ; Set PB5 as output sbi DDRB, 5