|
+++(a * 27573L) >> 16
это работает исправно, но оно вызывает ?Mul32, что дает оверхед под 30 байт (нафиг не нужный в данном случае), на код без слез смореть невозможно.
Пришлось воспользоваться ломом. Сделал так:
main.c:
extern int mul_hi(int a, int b);
...
result=mul_hi(a, 27534);
...===
asmfunc.s43:
...
PUBLIC mul_hi
mul_hi: call #?Mul16
mov r13,r12
ret
===
E-mail: info@telesys.ru