author: kx <kx@radix-linux.su> 2024-12-28 08:20:38 +0300
committer: kx <kx@radix-linux.su> 2024-12-28 08:20:38 +0300
commit: 07a2b4814e54523bee9733655d165dfa70643565
parent: 055ab71005847fee9aefff8f22be05c3b1ced684
Commit Summary:
Diffstat:
1 file changed, 56 insertions, 0 deletions
diff --git a/man/ru/isbb.3mpu b/man/ru/isbb.3mpu
new file mode 100644
index 0000000..6770000
--- /dev/null
+++ b/man/ru/isbb.3mpu
@@ -0,0 +1,65 @@
+.\" Copyright 2024 Andrew V.Kosteltsev (kx@radix-linux.su)
+.\"
+.\"
+.TH isbb 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBisbb\fP \- вычитание знаковое и беззнаковое с переносом
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void isbb( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBisbb()\fP выполняет операцию вычитания целых чисел, расположенных по адресам \fBa\fP и \fBb\fP,
+из полученной разности вычитает значение флага переноса \fBC\fP и размещает результат по адресу \fBc\fP.
+Операнды могут быть числами со знаком или без него. Содержимое памяти по адресам \fBa\fP, \fBb\fP
+не изменяется, предыдущее содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP определяет
+размер в байтах, операндов расположенных по адресам \fBc\fP, \fBa\fP, \fBb\fP. Поскольку функция \fBisbb()\fP
+использует флаг переноса \fBC\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 */
+
+ __mpu_stc(); /* Set Carry Flag */
+
+ isbb( c, a, b, nb );
+ iitoa( s, c, RADIX_DEC, LOWERCASE, nb ); /* convert C value to ASCII string S */
+ printf( "c = %s;\n", s ); /* c = 199; */
+ }
+
+ __mpu_free_context();
+
+ return( rc );
+}
+.fi
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR iadc(3),
+.BR isub(3).
+