|
Вот пример деления 16/16.
;Dividing (80000*N)/M (224MC)
div16: ldi cnt,16 ;init loop counter
div1: lsl res0 ;shift left dividend
rol res1
rol res2 ;shift dividend into remainder
rol res3
sub res2,m0 ;remainder=remainder-divisor
sbc res3,m1 ;
brcc div2 ;if result negative
add res2,m0 ;restore remainder
adc res3,m1
rjmp div3 ;else
div2: inc res0
div3: dec cnt ;decrement counter
brne div1 ;if doneДобавьте еще один или два регистра в делимое и делитель и все!
Составить ответ ||| Конференция ||| Архив
Ответы
E-mail: info@telesys.ru