.def	drem8u	=r15		;remainder
.def	dres8u	=r16		;result
.def	dd8u	=r16		;dividend
.def	dv8u	=r17		;divisor
.def	dcnt8u	=r18		;loop counter

		ldi dd8u,0b11100101	; данные
		ldi dv8u,0b00000000		

div8u:
		sub drem8u,drem8u	; clear remainder and carry
		ldi dcnt8u,9		; init loop counter

d8u_1:	
		rol	dd8u		; shift left dividend
		dec	dcnt8u		; decrement counter
		brne	d8u_2		; if done
		ret			; return

d8u_2:	
		rol	drem8u		; shift dividend into remainder
		sub	drem8u,dv8u	; remainder = remainder - divisor
		brcc	d8u_3		; if result negative
		add	drem8u,dv8u	; restore remainder
		clc			; clear carry to be shifted into result
		rjmp	d8u_1           ; else

d8u_3:	
		sec			; set carry to be shifted into result
		
		mov	temp3,drem8u
		andi 	temp3,0b00000001
		out 	SPDR,temp3 	; отправляем бит по SPI
		sbi     PORTB, 5	; дергаем SCL		
		nop	
		cbi	PORTB, 5	; дергаем SCL
		
		rjmp	d8u_1