Как разделить 1 регистр на два

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Пусть будет три регистра (ОЗУ) Q, A1,A2. в Q может находится любое число но не более 99, к примеру Q=34 как переделать так чтоб из Q получить A1=3 и A2=4 если Q=0 то A1=0 и A2=0
пишу на ассамблере
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Сем30 писал(а):...к примеру Q=34...
"34" это HEX или DEC?
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

DEC
Потрогал лапой паяльник
Сообщения: 399
Зарегистрирован: Сб авг 08, 2009 23:02:57
Откуда: Ростов-на-Дону

Сообщение driver_gv »

Ну как то так

Код: Выделить всё

		MOVFF	Q, A2
		MOVFF	Q, A1
		SWAPF	A1,F
		MOVLW	b'00001111'
		ANDWF	A1,F
		ANDWF	A2,F

__________________
Все, что нельзя запрограммировать на ассемблере, приходится паять
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Вот вы сами и ответили на свой вопрос. Число (34d=22h) надо перевести в десятичное. Десятки в один байт, единицы - в другой. Есть библиотеки. Самому написать перевод HEX>DEC достаточно просто.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Q=34d=22h=00100010b
после разделения надо чтоб получилось так:
А1=3d=3h=00000011b
A2=4d=4h=00000100b
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Вам ссылку на библиотеку или найдёте сами?
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

кажись понял как, щя буду испытывать
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Програмка не со всеми числами работает правильно, если в Q=39 то получается А1=7 и А2=2
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Ладно, держите. Адаптируете программу под свой контроллер.
Спойлер
Bin8bcd.asm
(1.33 КБ) 48 скачиваний
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Во спасибо, то что надо. Немного переделаю но мысль понял. Интересно, а есть еще какие варианты?
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Сем30 писал(а):...а есть еще какие варианты?
Вспомнить математику из начальной школы. :))
Можно делением на 10-ть. В остатке - единицы.
Ответить

Вернуться в «PIC»