Math Processor Unit Library

libmpu – library of arithmetic functions for integer, real, and complex numbers of increased digit capacity

16 Commits   0 Branches   2 Tags
.\" Copyright 2024 Andrew V.Kosteltsev (kx@radix-linux.su)
.\"
.\"
.TH isub 3  "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
.SH NAME
\fBisub\fP \- вычитание знаковое и беззнаковое
.SH SYNOPSIS
.nf
.B #include <libmpu.h>
.PP
.BI "void isub( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
.fi
.SH DESCRIPTION
Функция \fBisub()\fP выполняет операцию вычитания целых чисел, расположенных по адресам \fBa\fP и \fBb\fP,
c размещением результата по адресу \fBc\fP. Операнды могут быть числами со знаком или без него.
Содержимое памяти по адресам \fBa\fP, \fBb\fP не изменяется, предыдущее содержимое памяти по адресу
\fBc\fP теряется. Параметр \fBnb\fP определяет размер операндов (в байтах), расположенных по адресам
\fBc\fP, \fBa\fP, \fBb\fP.
.PP
Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP и \fBV\fP.
.PP
Флаги \fBА\fP и \fBP\fP выставляются только в том случае, когда размер операндов \fBa\fP, \fBb\fP равен одному или
двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
.sp
.SH EXAMPLES
.nf
.sp
#include <libmpu.h>
#include <stdio.h>

int main( void )
{
  int  rc = 0;

  __mpu_init();
  __mpu_extra_warnings = 1;

  {
    mpu_int128_t   c, a, b;
    int            nb = NB_I128;
    __mpu_char8_t  s[256];

    iatoi( a, "237", nb ); /* evaluate the A variable */
    iatoi( b,  "37", nb ); /* evaluate the B variable */

    isub( c, a, b, nb );
    iitoa( s, c, RADIX_DEC, LOWERCASE, nb ); /* convert C value to ASCII string S */
    printf( "c = %s;\\n", s ); /* c = 200; */
  }

  __mpu_free_context();

  return( rc );
}
.fi
.sp
.SH SEE ALSO
.BR iadd(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 ismul(3),
.BR idiv(3),
.BR isdiv(3),
.BR iatoi(3),
.BR iatoui(3),
.BR iitoa(3),
.BR iuitoa(3).