07a2b481 (kx 2024-12-28 08:20:38 +0300 1) .\" Copyright 2024 Andrew V.Kosteltsev (kx@radix-linux.su)
07a2b481 (kx 2024-12-28 08:20:38 +0300 2) .\"
07a2b481 (kx 2024-12-28 08:20:38 +0300 3) .\"
07a2b481 (kx 2024-12-28 08:20:38 +0300 4) .TH isub 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
07a2b481 (kx 2024-12-28 08:20:38 +0300 5) .SH NAME
07a2b481 (kx 2024-12-28 08:20:38 +0300 6) \fBisub\fP \- вычитание знаковое и беззнаковое
07a2b481 (kx 2024-12-28 08:20:38 +0300 7) .SH SYNOPSIS
07a2b481 (kx 2024-12-28 08:20:38 +0300 8) .nf
07a2b481 (kx 2024-12-28 08:20:38 +0300 9) .B #include <libmpu.h>
07a2b481 (kx 2024-12-28 08:20:38 +0300 10) .PP
07a2b481 (kx 2024-12-28 08:20:38 +0300 11) .BI "void isub( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
07a2b481 (kx 2024-12-28 08:20:38 +0300 12) .fi
07a2b481 (kx 2024-12-28 08:20:38 +0300 13) .SH DESCRIPTION
07a2b481 (kx 2024-12-28 08:20:38 +0300 14) Функция \fBisub()\fP выполняет операцию вычитания целых чисел, расположенных по адресам \fBa\fP и \fBb\fP,
07a2b481 (kx 2024-12-28 08:20:38 +0300 15) c размещением результата по адресу \fBc\fP. Операнды могут быть числами со знаком или без него.
07a2b481 (kx 2024-12-28 08:20:38 +0300 16) Содержимое памяти по адресам \fBa\fP, \fBb\fP не изменяется, предыдущее содержимое памяти по адресу
653f53cb (kx 2024-12-30 21:50:33 +0300 17) \fBc\fP теряется. Параметр \fBnb\fP определяет размер операндов (в байтах), расположенных по адресам
07a2b481 (kx 2024-12-28 08:20:38 +0300 18) \fBc\fP, \fBa\fP, \fBb\fP.
07a2b481 (kx 2024-12-28 08:20:38 +0300 19) .PP
07a2b481 (kx 2024-12-28 08:20:38 +0300 20) Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP и \fBV\fP.
07a2b481 (kx 2024-12-28 08:20:38 +0300 21) .PP
07a2b481 (kx 2024-12-28 08:20:38 +0300 22) Флаги \fBА\fP и \fBP\fP выставляются только в том случае, когда размер операндов \fBa\fP, \fBb\fP равен одному или
07a2b481 (kx 2024-12-28 08:20:38 +0300 23) двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
07a2b481 (kx 2024-12-28 08:20:38 +0300 24) .sp
07a2b481 (kx 2024-12-28 08:20:38 +0300 25) .SH EXAMPLES
07a2b481 (kx 2024-12-28 08:20:38 +0300 26) .nf
07a2b481 (kx 2024-12-28 08:20:38 +0300 27) .sp
07a2b481 (kx 2024-12-28 08:20:38 +0300 28) #include <libmpu.h>
07a2b481 (kx 2024-12-28 08:20:38 +0300 29) #include <stdio.h>
07a2b481 (kx 2024-12-28 08:20:38 +0300 30)
07a2b481 (kx 2024-12-28 08:20:38 +0300 31) int main( void )
07a2b481 (kx 2024-12-28 08:20:38 +0300 32) {
07a2b481 (kx 2024-12-28 08:20:38 +0300 33) int rc = 0;
07a2b481 (kx 2024-12-28 08:20:38 +0300 34)
07a2b481 (kx 2024-12-28 08:20:38 +0300 35) __mpu_init();
07a2b481 (kx 2024-12-28 08:20:38 +0300 36) __mpu_extra_warnings = 1;
07a2b481 (kx 2024-12-28 08:20:38 +0300 37)
07a2b481 (kx 2024-12-28 08:20:38 +0300 38) {
07a2b481 (kx 2024-12-28 08:20:38 +0300 39) mpu_int128_t c, a, b;
07a2b481 (kx 2024-12-28 08:20:38 +0300 40) int nb = NB_I128;
07a2b481 (kx 2024-12-28 08:20:38 +0300 41) __mpu_char8_t s[256];
07a2b481 (kx 2024-12-28 08:20:38 +0300 42)
07a2b481 (kx 2024-12-28 08:20:38 +0300 43) iatoi( a, "237", nb ); /* evaluate the A variable */
07a2b481 (kx 2024-12-28 08:20:38 +0300 44) iatoi( b, "37", nb ); /* evaluate the B variable */
07a2b481 (kx 2024-12-28 08:20:38 +0300 45)
07a2b481 (kx 2024-12-28 08:20:38 +0300 46) isub( c, a, b, nb );
07a2b481 (kx 2024-12-28 08:20:38 +0300 47) iitoa( s, c, RADIX_DEC, LOWERCASE, nb ); /* convert C value to ASCII string S */
e3f8685d (kx 2024-12-30 18:22:24 +0300 48) printf( "c = %s;\\n", s ); /* c = 200; */
07a2b481 (kx 2024-12-28 08:20:38 +0300 49) }
07a2b481 (kx 2024-12-28 08:20:38 +0300 50)
07a2b481 (kx 2024-12-28 08:20:38 +0300 51) __mpu_free_context();
07a2b481 (kx 2024-12-28 08:20:38 +0300 52)
07a2b481 (kx 2024-12-28 08:20:38 +0300 53) return( rc );
07a2b481 (kx 2024-12-28 08:20:38 +0300 54) }
07a2b481 (kx 2024-12-28 08:20:38 +0300 55) .fi
07a2b481 (kx 2024-12-28 08:20:38 +0300 56) .sp
07a2b481 (kx 2024-12-28 08:20:38 +0300 57) .SH SEE ALSO
07a2b481 (kx 2024-12-28 08:20:38 +0300 58) .BR iadd(3),
07a2b481 (kx 2024-12-28 08:20:38 +0300 59) .BR iadc(3),
41c271da (kx 2025-01-05 15:42:39 +0300 60) .BR isbb(3),
41c271da (kx 2025-01-05 15:42:39 +0300 61) .BR ishl(3),
41c271da (kx 2025-01-05 15:42:39 +0300 62) .BR ishr(3),
41c271da (kx 2025-01-05 15:42:39 +0300 63) .BR isal(3),
41c271da (kx 2025-01-05 15:42:39 +0300 64) .BR isar(3),
41c271da (kx 2025-01-05 15:42:39 +0300 65) .BR irol(3),
41c271da (kx 2025-01-05 15:42:39 +0300 66) .BR iror(3),
41c271da (kx 2025-01-05 15:42:39 +0300 67) .BR ircl(3),
41c271da (kx 2025-01-05 15:42:39 +0300 68) .BR ircr(3),
41c271da (kx 2025-01-05 15:42:39 +0300 69) .BR ishln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 70) .BR ishrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 71) .BR isaln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 72) .BR isarn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 73) .BR iroln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 74) .BR irorn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 75) .BR ircln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 76) .BR ircrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 77) .BR ineg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 78) .BR inot(3),
41c271da (kx 2025-01-05 15:42:39 +0300 79) .BR iand(3),
41c271da (kx 2025-01-05 15:42:39 +0300 80) .BR itest(3),
41c271da (kx 2025-01-05 15:42:39 +0300 81) .BR icmp(3),
41c271da (kx 2025-01-05 15:42:39 +0300 82) .BR ior(3),
41c271da (kx 2025-01-05 15:42:39 +0300 83) .BR ixor(3),
41c271da (kx 2025-01-05 15:42:39 +0300 84) .BR iinc(3),
41c271da (kx 2025-01-05 15:42:39 +0300 85) .BR idec(3),
41c271da (kx 2025-01-05 15:42:39 +0300 86) .BR ixchg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 87) .BR icpy(3),
41c271da (kx 2025-01-05 15:42:39 +0300 88) .BR icvt(3),
41c271da (kx 2025-01-05 15:42:39 +0300 89) .BR imul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 90) .BR ismul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 91) .BR idiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 92) .BR isdiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 93) .BR iatoi(3),
41c271da (kx 2025-01-05 15:42:39 +0300 94) .BR iatoui(3),
41c271da (kx 2025-01-05 15:42:39 +0300 95) .BR iitoa(3),
41c271da (kx 2025-01-05 15:42:39 +0300 96) .BR iuitoa(3).