Страница 1 из 1
Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 17:55:18
Сем30
Пусть будет три регистра (ОЗУ) Q, A1,A2. в Q может находится любое число но не более 99, к примеру Q=34 как переделать так чтоб из Q получить A1=3 и A2=4 если Q=0 то A1=0 и A2=0
пишу на ассамблере
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 17:58:11
Albert_V
Сем30 писал(а):...к примеру Q=34...
"34" это HEX или DEC?
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 17:59:49
Сем30
DEC
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 18:06:05
driver_gv
Ну как то так
Код: Выделить всё
MOVFF Q, A2
MOVFF Q, A1
SWAPF A1,F
MOVLW b'00001111'
ANDWF A1,F
ANDWF A2,F
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 18:07:04
Albert_V
Вот вы сами и ответили на свой вопрос. Число (34d=22h) надо перевести в десятичное. Десятки в один байт, единицы - в другой. Есть библиотеки. Самому написать перевод HEX>DEC достаточно просто.
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 18:14:22
Сем30
Q=34d=22h=00100010b
после разделения надо чтоб получилось так:
А1=3d=3h=00000011b
A2=4d=4h=00000100b
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 18:15:33
Albert_V
Вам ссылку на библиотеку или найдёте сами?
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 18:17:32
Сем30
кажись понял как, щя буду испытывать
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 19:28:58
Сем30
Програмка не со всеми числами работает правильно, если в Q=39 то получается А1=7 и А2=2
Re: Как разделить 1 регистр на два
Добавлено: Пн май 18, 2015 19:30:44
Albert_V
Ладно, держите. Адаптируете программу под свой контроллер.
Спойлер
Re: Как разделить 1 регистр на два
Добавлено: Вт май 19, 2015 15:38:43
Сем30
Во спасибо, то что надо. Немного переделаю но мысль понял. Интересно, а есть еще какие варианты?
Re: Как разделить 1 регистр на два
Добавлено: Вт май 19, 2015 15:46:02
Albert_V
Сем30 писал(а):...а есть еще какие варианты?
Вспомнить математику из начальной школы.
Можно делением на 10-ть. В остатке - единицы.