📄 mpvecsub.s
字号:
/* * mpvecsub(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *diff) * * diff[0:alen-1] = a[0:alen-1] - b[0:blen-1] * * prereq: alen >= blen, diff has room for alen digits */TEXT mpvecsub(SB),$0 MOVL a+0(FP),SI MOVL b+8(FP),BX MOVL alen+4(FP),DX MOVL blen+12(FP),CX MOVL diff+16(FP),DI SUBL CX,DX XORL BP,BP /* this also sets carry to 0 */ /* skip subraction if b is zero */ TESTL CX,CX JZ _sub1 /* diff[0:blen-1],borrow = a[0:blen-1] - b[0:blen-1] */_subloop1: MOVL (SI)(BP*4),AX SBBL (BX)(BP*4),AX MOVL AX,(DI)(BP*4) INCL BP LOOP _subloop1_sub1: INCL DX MOVL DX,CX LOOP _subloop2 RET /* diff[blen:alen-1] = a[blen:alen-1] - 0 */_subloop2: MOVL (SI)(BP*4),AX SBBL $0,AX MOVL AX,(DI)(BP*4) INCL BP LOOP _subloop2 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -