Решил из любви к искусству написать сабж. Реализация примитивнейшего алгоритма внезапно оказалась мозговзрывательным занятием на целый день (параллельно с чтением толксов)
Протестил на atmega8515, вроде работает
insertion_sort: ; X - адрес буфера в RAM, r18 - размер буфера в байтах
adiw XH:XL,1
mov r19, r18;  r19 - счётчик внешнего цикла
dec r19
_insertion_sort_loop:
	breq _insertion_sort_end
	movw YH:YL, XH:XL
	subi YH:YL,1
	ld r20,X+
	mov r16, r18
	sub r16, r19 ; r16 - счётчик внутреннего цикла
	_insertion_sort_loop2:
		breq _insertion_sort_loop2_end
 		ld r17, Y
		cp r20, r17
		brsh _insertion_sort_loop2_end
		std Y+1, r17
		subi YH:YL,1
		dec r16
		rjmp _insertion_sort_loop2
	_insertion_sort_loop2_end:
	std Y+1,r20
	dec r19
	rjmp _insertion_sort_loop
_insertion_sort_end:
ret
Кто тут есть из любителей AVR, какие улучшения ещё можно сделать в плане уменьшения количества инструкций, используемых регистров или просто чтоб красивее выглядело?







