Can't you use the assembler .include directive? This works for me in Linux (I don't know about Windows).
asm (".include \"/full/path/to/sketch/asm.h\" \n");
extern "C" int func();
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(func());
}
asm.h:
.section .text
.equ elo, 105
.equ ehi, 122
.global func
func:
ldi r24,elo
ldi r25,ehi
ret
I use a .h file so the IDE doesn't complain, it's a bit of a hack. You seem to have to use an absolute path to .include, and you have to remember to save it in the IDE each time you change it before compiling.