Multiplicação int SDCC

Meus Amigos,
No manual do SDCC está escrito:
No entanto quando multiplico 2 números do tipo int como no programa abaixo
cpp code
a variável resultado continua igual a zero.
O que está errado?
Como faço para usar a função mulint.c ?
Agradeço qq dica.
Iran.
No manual do SDCC está escrito:
"3.14 int (16 bit) and long (32 bit) Support
For signed & unsigned int (16 bit) and long (32 bit) variables, division, multiplication and modulus operations are
implemented by support routines. These support routines are all developed in ANSI-C to facilitate porting to other
MCUs, although some model specific assembler optimizations are used. The following files contain the described
routines, all of them can be found in <installdir>/share/sdcc/lib.
Function Description
_mulint.c 16 bit multiplication
_divsint.c signed 16 bit division (calls _divuint)
_divuint.c unsigned 16 bit division
_modsint.c signed 16 bit modulus (calls _moduint)
_moduint.c unsigned 16 bit modulus
_mullong.c 32 bit multiplication
_divslong.c signed 32 division (calls _divulong)
_divulong.c unsigned 32 division
_modslong.c signed 32 bit modulus (calls _modulong)
_modulong.c unsigned 32 bit modulus
Since they are compiled as non-reentrant, interrupt service routines should not do any of the above operations.
If this is unavoidable then the above routines will need to be compiled with the --stack-auto option, after which
the source program will have to be compiled with --int-long-reent option. Notice that you don’t have to call these
routines directly. The compiler will use them automatically every time an integer operation is required."
No entanto quando multiplico 2 números do tipo int como no programa abaixo
cpp code
#include <at89s8252.h>
unsigned int op1 = 734;
unsigned int op2 = 855;
unsigned long int resultado;
void main(void)
{
resultado = (op1 * op2);
while(1);
}
a variável resultado continua igual a zero.
O que está errado?
Como faço para usar a função mulint.c ?
Agradeço qq dica.
Iran.