idigitvecmult.c
来自「Arithmetic for integers of almost unlimi」· C语言 代码 · 共 45 行
C
45 行
/* idigitvecmult.c - inline assembler code for MSVC++6.0 on Intel586 *//* TPf, Sep 1999 */#include <iint.h>#include <idigit.h>#if !defined(USE_C_DIGITVECMULT)DigitType DigitVecMult(res, a, m, l) DigitType *res, *a, m; int l; /* res[0..l-1] = a[0..l-1]*m; return CARRY; */{__asm {/* .text .align 4 .globl USCORE(DigitVecMult)USCORE(DigitVecMult): */ mov ebx, res ; DWORD PTR 20[esp] mov edi, a ; DWORD PTR 24[esp] mov esi, m ; DWORD PTR 28[esp] mov ecx, l ; DWORD PTR 32[esp] xor ebp,ebp test ecx,ecx ; jz L2 ; jump if ecx is zeroL1: mov eax, DWORD PTR [edi] add edi, 4 mul esi add eax, ebp mov ebp, edx adc ebp, 0 mov DWORD PTR [ebx], eax add ebx, 4 dec ecx jnz L1L2: mov eax, ebp }}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?