Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Микроконтроллеры
Перезагрузить страницу Преобразование чисел из двоичной в десятиричную систему
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
vka vka вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.11.2005
По умолчанию Преобразование чисел из двоичной в десятиричную систему - 03.10.2007, 19:04

программа используется как вставка, прога на Си для AVR для преобразования двоично в двоично-десятичное
Работает впринципе нормально но где то происходит переполнение регистра и дольнейшем сбой программы и на динамической индикации заместо отсчета повисает значение "3"
помогите выловить ошибку, в том что она в этой вставке оприделено в имуляторе.

Код:
void IntToBcd( unsigned int iv )    {    //двоично в двоично-десятичное
 
#asm
;*******************************************************************
;16-битное двоичное в 
;упакованое  BCD 
;*******************************************************************
;* количество циклов              :25/176
;* использаваные старшие регистры:4(fbinL,fbinH/tBCD0,tBCD1,tBCD2)
;*******************************************************************
;***** регистры программы
.def    fbinL   =r30           ;младший байт двоичный
.def    fbinH   =r31           ;старший байт
.def    tBCD0   =r31           ;BCD значение цифры 1 и 0
.def    tBCD1   =r18           ;BCD значение цифры 3 и 2
.def    tBCD2   =r19           ;BCD значение цифры 4
;примечание переменные fbinH ? tBCD0 должны рамещатся в одном регисре
;
;***** код
;bin16BCD5:
;       ldi     tBCD2, -1
bin16BCD5_loop_1:
;        inc     tBCD2    
        subi    fbinL, low(10000)  
        sbci    fbinH, high(10000) 
        brsh    bin16BCD5_loop_1
        subi    fbinL, low(-10000)
        sbci    fbinH, high(-10000)
        ldi     tBCD1, -0x11
bin16BCD5_loop_2:
        subi    tBCD1, -0x10
        subi    fbinL, low(1000)
        sbci    fbinH, high(1000)
        brsh bin16BCD5_loop_2
        subi    fbinL, low(-1000)
        sbci    fbinH, high(-1000) 
bin16BCD5_loop_3:
        inc     tBCD1
        subi    fbinL, low(100)
        sbci    fbinH, high(100)
        brsh bin16BCD5_loop_3
        subi    fbinL, -100
        ldi     tBCD0, -0x10
 bin16BCD5_loop_4:
        subi    tBCD0, -0x10
        subi    fbinL, 10
        brsh bin16BCD5_loop_4
        subi    fbinL, -10
        add     tBCD0, fbinL
        mov    r8,r31;копируется готовый результат для дальнейшего использоования        
        mov    r10,r18      ;
        ret        

#endasm
Ответить с цитированием
  (#2 (permalink)) Старый
voodOOpeople voodOOpeople вне форума
Member
 
Сообщений: 1,038
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.08.2004
По умолчанию 08.12.2007, 11:09

Блин на сях напиши, нет времени ковырятся с асмом.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать преобразование чисел ЛЕРЧИК Pascal 2 03.06.2011 02:03
Перевод из двоичной в десятичную систему чисел CipDomich С/С++ 3 13.11.2010 18:09
Перевод чисел из двоичной в шестнадцатиричную систему p@inkiller C++ Builder 16 15.01.2010 20:06
Преобразование чисел в другие системы счисления Виталик 1 Delphi 3 27.11.2006 23:04
Программный перевод чисел в десятиричную систему skuzma Assembler 2 06.06.2006 13:41
Как сделать преобразование чисел Senters С/С++ 13 13.02.2006 22:25
деление действительных чисел или преобразование типов fixx Prolog 2 20.12.2005 02:54
Преобразование больших чисел при помощи функции atof pzim Visual C++ 2 07.12.2005 13:04
Как сделать перевод чисел из двоичной системы imported__Sergey_ Вопросы начинающих программистов 4 20.10.2005 01:55
Преобразование арабских чисел в римские в Basic dr.Lector Вопросы начинающих программистов 2 17.09.2005 03:21
Преобразование двоичной строки в десятичное число Anonymous Вопросы начинающих программистов 1 18.06.2003 19:09
Преобразование двоичной строки в десятичное число при помощи AncsiStr Anonymous Вопросы начинающих программистов 1 18.06.2003 16:31



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов