Example assembly code and build environment for Digispark, a cheap and tiny ATtiny85 USB board running the micronucleus V-USB bootloader.
The build process requires avr-gcc which is available via the larsimmisch/homebrew-avr Homebrew tap.
Aside from the raw machine code generated by the assembly file, the hex
file uploaded to the AVR via micronucleus needs a vector table, and
some AVR-specific setup code. This is provided by avr-gcc via the
-mmcu=attiny85 flag. That took me some time to figure out.