Отговори на тема  [ 6 мнения ] 
математиката на пика... 
Автор Съобщение
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение математиката на пика...
Здравейте,

опитвам се да разгадая как става това делене на асемблер. Използвам AN526 за PIC16.

Цитат:
movlw 1
movwf ACCaHI
movlw 0FF ; loads ACCa = 01FF
movwf ACCaLO

movlw 07F
movwf ACCbHI
movlw 0FF ; loads ACCb = 7FFF
movwf ACCbLO

call D_divS

Така резултата е такъв "remainder in ACCc. Here ACCb =0040 & ACCc=003F"
Въпроса ми е как това да го превърна в реалния резултат ... нали 01FF=51110
и 7FFF=3276710 тогава резултата е 511/32767=0,016..
та как да го получа в bcd ли трябва да преварна хекса?


Пет Мар 13, 2009 7:03 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
Без да кажеш какво прави това, никой няма да ти помогне

call D_divS


Пет Мар 13, 2009 7:22 pm
Профил
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение 
call D_divS е подпрограмата за делене
ACCb(16 bits) / ACCa(16 bits) -> ACCb(16 bits) with
Remainder in ACCc (16 bits)


Пет Мар 13, 2009 7:28 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Предполагам,че резултата ти е в 4(3) клетки: 2 за младша и старша част на резултата и 2(1) за остатъка (ако остатъка е еднобайтов).Преобразуваш цялата част в BCD изобразяваш я,после изобразяваш точка,после изобразяваш остатъка от деленето преобразувано предварително в BCD.


Пет Мар 13, 2009 8:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение 
Ки4о написа:
...Преобразуваш цялата част в BCD изобразяваш я,после изобразяваш точка,после изобразяваш остатъка от деленето преобразувано предварително в BCD.


не бъркай остатъка с дробна част !

дробната част е остатъка разделен на делителя !

пример:
31/20 = 1 и остатък R=11

дробната част е 11/20 = 0.55

ако иска остатъка да го направи на дробна част с 2 разряда:
R*100 / 20 = 55

т.е. е още едно у-е и деление ще сметне и дробната част !


Пет Мар 13, 2009 8:35 pm
Профил
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение 
...хм бая сложно е това делене на асемблер...друго си е на Ц-то


Съб Мар 14, 2009 12:30 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 20 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни