.TH imul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual" .SH NAME \fBimul\fP \- unsigned integer multiplication .SH SYNOPSIS .nf .B #include .PP .BI "void imul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " ); .fi .SH DESCRIPTION The function \fBimul()\fP performs the unsigned multiplication operation of the variable located at the address \fBnum\fP by the variable located at the address \fBmul\fP. The result is placed at \fBprod\fP. The contents of the memory at addresses \fBnum\fP, \fBmul\fP are not changed, and the previous memory contents at address \fBprod\fP are lost. The \fBnb_prod\fP parameter determines the size of the operand (in bytes) located at address \fBprod\fP, and the \fBnb_num\fP parameter determines the size of operands (in bytes) located at 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 defined by \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 ismul(3), .BR idiv(3), .BR isdiv(3), .BR iatoi(3), .BR iatoui(3), .BR iitoa(3), .BR iuitoa(3).