Уважаемый
hubble. Вместо того, чтобы 2 дня потратить на запросы по форуму и ковыряния в коде, может проще потратить 10-15 минут на изучение мануала по компилятору?
Смысл ведь действий прост - вам надо найти раздел что-нибудь типа mixing ASM & C. И узнать как передаются переменные в п/п и из неё. Например для IAR компилятора
а находилось бы в R17:R16, а
b в R19:R18. Результат необходимо было бы поместить в R19:R16. При этом нельзя портить регистры определённые.
Судя по посту
OneTech, в CV переменные передаются на стеке данных. Указатель стека в регистровой паре Y. Он портит регистры R16-R19 и R31:R30 (что для IAR, к примеру, недопустимо)
===
Далее по теме топика. Ну для деления - эт ладно... Но а уж по умножению ну смешно же ведь даже... Ребята вы что столбиком не умножали?
Ну неужели так сложно?
AB
*
CD
=
D*B
+
D*A ‹‹8
+
C*B ‹‹8
+
C*A ‹‹16
--
Имея аппаратное умножение - это что проблема? Поясните?
В конце концов ну не высшая же математика ... Ну хоть немного голову напрягайте ... Совсем же апрофируется данный орган.