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

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

Отправлено колян безпарольный 19 августа 2005 г. 20:33
В ответ на: Господа, не поделитесь листингом п/программы на асемблере AVR деления беззнаковых чисел 32/16 бит отправлено ЛУКавый 19 августа 2005 г. 19:38


;Деление 16/16
.def delimoe0 =r8
.def delimoe1 =r9
.def delimoe2 =r10
.def delimoe3 =r11
.def ost0 =r12
.def ost1 =r13
.def delitel0 =r14
.def delitel1 =r15
.def res0 =r26 ;регистры X и Y
.def res1 =r27 ;
.def res2 =r28 ;
.def res3 =r29 ;


;***************************************************************************
div32_16:
clr ost1 ;
clr ost0 ;
clr res3 ;
clr res2 ;
clr res1 ;
ldi res0,1

d1: lsl delimoe0 ; Ротация влево делимого с сохpанением бита
rol delimoe1 ; пеpеноса в C
rol delimoe2 ;
rol delimoe3 ;
brcc d2
inc delimoe0
d2: rol ost0 ; Получаем текущий остаток деления
rol ost1 ;
brcs d3

cp delitel1,ost1 ;remainder = remainder - divisor
brcs d3
brnz d4
cp delitel0,ost0 ;remainder = remainder - divisor
brcs d3
brnz d4
d3: clc
sub ost0,delitel0 ;Вычитаем делитель из текущего остатка
sbc ost1,delitel1 ;
sec
d4: rol res0 ; Сдвиг частного влево
rol res1 ;
rol res2 ;
rol res3 ;
brcc d1
RET



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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru