[an error occurred while processing this directive]
Ответ: сам не проверял
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено blocking 15 августа 2005 г. 13:29
В ответ на: Help!!! Будьте добры бросте исходники 32 битного деления на асме для AVR (atmega8)...........Заранее благодарен отправлено Aleksey75 15 августа 2005 г. 12:07

;-----------------------------------------------------------------------------:
; 32bit/32bit Unsigned Division
;
; Register Variables
; Call: var1[3:0] = dividend (0x00000000..0xffffffff)
; var2[3:0] = divisor (0x00000001..0x7fffffff)
; mod[3:0] =
; lc = (high register must be allocated)
;
; Result:var1[3:0] = var1[3:0] / var2[3:0]
; var2[3:0] =
; mod[3:0] = var1[3:0] % var2[3:0]
; lc = 0
;
; Size = 26 words
; Clock = 549..677 cycles (+ret)
; Stack = 0 bytes


div32u: clr mod0 ;initialize variables
clr mod1 ; mod = 0;
clr mod2 ; lc = 32;
clr mod3 ;
ldi lc,32 ;/
;---- calcurating loop
lsl var10 ;var1 = var1 << 1;
rol var11 ;
rol var12 ;
rol var13 ;/
rol mod0 ;mod = mod << 1 + carry;
rol mod1 ;
rol mod2 ;
rol mod3 ;/
cp mod0,var20 ;if (mod => var2) {
cpc mod1,var21 ; mod -= var2; var1++;
cpc mod2,var22 ; }
cpc mod3,var23 ;
brcs PC+6 ;
inc var10 ;
sub mod0,var20 ;
sbc mod1,var21 ;
sbc mod2,var22 ;
sbc mod3,var23 ;/
dec lc ;if (--lc > 0)
brne PC-19 ; continue loop;
ret

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru