Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

перевод в двоично-десятичную систему

Непрочитано 13.11.2017, 12:04  
dgrishin
Почётный гражданин KAZUS.RUN
 
Регистрация: 12.02.2013
Адрес: На болотах
Сообщений: 1,162
Сказал спасибо: 46
Сказали Спасибо 315 раз(а) в 244 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: перевод в двоично-десятичную систему

Сообщение от iksik Посмотреть сообщение
Здравствуйте, у меня возникли проблемы с переводом из двоичной системы в двоично-десятичную на ассемблере. Не могли помочь?
интересует логика, код..
МК AT89C51
Очень мне нравится такой алгоритм для asm Atmel а(см. ниже)
При желании его можно запилить для других контроллеров (переделывал его на СИ для STM32)

;input: R17, R16 = 16 bit value 0 ... 65535
;output: R20, R19, R18, R17, R16 = 5 digits (ASCII)
;cycle: 20 ... 170
;
bin16_ascii:

ldi r20, -1 + '0'
_bcd1: inc r20
subi r16, low(10000) ;-10000
sbci r17, high(10000)
brcc _bcd1

ldi r19, 10 + '0'
_bcd2: dec r19
subi r16, low(-1000) ;+1000
sbci r17, high(-1000)
brcs _bcd2

ldi r18, -1 + '0'
_bcd3: inc r18
subi r16, low(100) ;-100
sbci r17, high(100)
brcc _bcd3

ldi r17, 10 + '0'
_bcd4: dec r17
subi r16, -10 ;+10
brcs _bcd4

subi r16, -'0'
ret

ЗЫ: Для двоично-десятичной надо везде убрать "+ '0' "
Реклама:

Последний раз редактировалось dgrishin; 13.11.2017 в 12:14. Причина: дополнение
dgrishin вне форума  
Непрочитано 13.11.2017, 13:25  
IOPA4
Почётный гражданин KAZUS.RUN
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,290
Сказал спасибо: 452
Сказали Спасибо 501 раз(а) в 267 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: перевод в двоично-десятичную систему

Сообщение от индюк Посмотреть сообщение
язык то какой? Асм или си?
Если си то sprinf(a, b)
Если асм, то в гугле ищи hex2dec, hextodec
Как то вы странно отвечаете на вопрос (вопросом). Человек спросил:"с переводом из двоичной системы в двоично-десятичную на ассемблере.", в переводе звучит, как из двоичного кода получить BCD.
Почитайте hex2bcd.

Последний раз редактировалось IOPA4; 13.11.2017 в 13:31.
IOPA4 вне форума  
 

Метки
at89c51, ассемблер, двоично-десятичная, перевод
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги (не радиотехнической тематики) Mike79 Электронная библиотека 4269 04.06.2025 23:11
Linux-ваше мнение Tvenn Делимся опытом 6169 23.08.2015 08:57
Книги (Художественная литература) Mike79 Электронная библиотека 40 29.11.2014 13:29
Перевод PROTEUS 6.9sp5 VO-VAN Proteus 21 02.01.2008 00:31


Часовой пояс GMT +4, время: 03:04.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.