I might be having brain fade here....
I see STORE/LOAD macros defined for ASM that hide the complexity of locations being in I/O or memory space, but I can't get why there are a pair of macros.
STORE is typically used for the pseudocode equivalent of, say, ADCSRA = r16
LOAD is typically used for the pseudocode equivalent of, say, r16 = ADCSRA
But if we were in C-land, we would just say
ADCSRA = var, or
var = ADCSRA
So why can't a single ASM macro exist(say EQUALS) that just makes the first argument equal the second, e.g. you would be able to do the simple (but useless):
EQUALS r16, ADCSRA
EQUALS ADCSRA, r16