BOB51, вот именно так я на лабах и программировал этот 580. Руками и калькулятором переводя асм в машкод) MPLAB для пика после этого просто райским звоном показался))
Lina_Inverse, вот вам информация к размышлению.
Для перевода BCD в двоичный вид в общем потребуется всего два действия: в двоичном коде перемножить цифру десятков на 10 и сложить с цифрой единиц (поправьте, если ошибаюсь). Вот например, я хочу умножить 9(BCD) на 10. 9 в двоичном коде - это 1001, 10 - это 1010.
Умножение в столбик:
00001001
*00001010
----------
00000000
00010010
00000000
01001000
----------
01011010
Умножение на 10 любых полубайтных чисел будет аналогично. Чтобы число умножить на 10, нужно сдвинуть его на разряд влево и сложить с ним же, сдвинутым на 3 разряда влево. По сути это и есть алгоритм. Ну а складывать кр580 умеет, если память мне не изменяет. Пример в командах привести не могу, ибо давно их забыл, а быстро не гуглятся. Если зальёте куда-нибудь список ассемблерных команд камня, попробую сообразить чего-нибудь.
Оффтоп: люди, никто не знает ссылок, где бы можно было почитать про работу с USART STM32 в кейле? Хотел отсюда передрать (
http://www.scienceprog.com/connecting-stm32-usart-to-standard-io-streams-in-gcc/), но не компилится. Библиотеку усарта в проект добавлял.