реклама на сайте
подробности

 
 
> преобразование 32бита в BCD, надо отобразить число 144500 на экране для рации
индюк
сообщение Apr 7 2006, 01:34
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 3-01-06
Пользователь №: 12 788



помогите как преобразовать в асм-е 32 бита (или 24) в bcd формат для индикации на datavision экране.
может есть у кого действующий кусок программы.
си не знаю/не предлогать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Romario
сообщение Apr 9 2006, 16:42
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 26-06-04
Пользователь №: 192



ну и до кучи - честно стыренный алгоритм с телесистем.
Автору поста не смотреть, т.к. на С.
может кому пригодится. Самое сложное тут умноить на 429497
Сам алгоритм можно понять, но немного поясню.
w тут используется чтобы засечь ведущий не 0.


Код
static u8_t * PutWord(u8_t *p, u16_t w) {  
vu32_t res32;
vu32_t ret ;
  u64_t res48 = (u64_t)w * 429497ull;
  ////////////////////////////////////////////////////////
        res32 = (res48 >> 16);
        res32++;
        // десятки тыщ
            w  = res32 >> 16;
        if (w) {
            *p++ = w | '0';
        }
        // тыщи
            ret =  (res32 = (res32 & 0xffff) * 10) >> 16;
        if (ret || w) {
            w    = 1;
            *p++ = ret | '0';
        }
        // сотни         
            ret =  (res32 = (res32 & 0xffff) * 10) >> 16;
        if (ret || w) {
            w    = 1;
            *p++ = ret | '0';
        }
        // десятки        
            ret =  (res32 = (res32 & 0xffff) * 10) >> 16;
        if (ret || w) {
            *p++ = ret | '0';
        }
        // еденицы         
        *p++  =  (((res32 & 0xffff) * 10) >> 16) | '0';
        return p;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016