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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 13.11.2017, 12:04   #11
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,021
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
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   #12
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: перевод в двоично-десятичную систему

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

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

Закладки

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги (не радиотехнической тематики) Mike79 Делимся опытом 4264 16.08.2023 23:52
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, время: 15:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot