.TH ismul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual" .SH NAME \fBismul\fP \- signed multiplication of integers .SH SYNOPSIS .nf .B #include .PP .BI "void ismul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " ); .fi .SH DESCRIPTION The function \fBismul()\fP performs the multiplication operation of the variable located at the address \fBnum\fP by the variable located at the address \fBmul\fP, taking into account the sign of the variables. The result is placed at \fBprod\fP. The contents of the memory at \fBnum\fP, \fBmul\fP are not changed, the previous memory contents at \fBprod\fP are lost. The parameter \fBnb_prod\fP determines the size of the operand (in bytes) located at the address \fBprod\fP, and the parameter \fBnb_num\fP defines the size of operands (in bytes) located at the addresses \fBnum\fP, \fBmul\fP. .PP The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP. .PP The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). Flag \fBR\fP (major || remainder) is set in the case that the resulting product requires a larger size than the \fBnb_prod\fP parameter. .sp .SH SEE ALSO .BR iadd(3), .BR isub(3), .BR iadc(3), .BR isbb(3), .BR ishl(3), .BR ishr(3), .BR isal(3), .BR isar(3), .BR irol(3), .BR iror(3), .BR ircl(3), .BR ircr(3), .BR ishln(3), .BR ishrn(3), .BR isaln(3), .BR isarn(3), .BR iroln(3), .BR irorn(3), .BR ircln(3), .BR ircrn(3), .BR ineg(3), .BR inot(3), .BR iand(3), .BR itest(3), .BR icmp(3), .BR ior(3), .BR ixor(3), .BR iinc(3), .BR idec(3), .BR ixchg(3), .BR icpy(3), .BR icvt(3), .BR imul(3), .BR idiv(3), .BR isdiv(3), .BR iatoi(3), .BR iatoui(3), .BR iitoa(3), .BR iuitoa(3).