nun, das ressourcenfressen ist eher das elegante drumherum (also konvertierungen und so).
Der eigentliche Output ist schlicht und ergreifend, das geht nicht anders
Code:
L_0x00AE:
	SBIS	UCSRA,UDRE
	RJMP	L_0x00AE
	OUT	UDR,r24
	RET
Du kannst diese Zeilen auch mit inline-assembler reinstellen, aber das nutz auch nix