⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nnm.nc

📁 elliptic curve加密源代码
💻 NC
📖 第 1 页 / 共 5 页
字号:
		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T03: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T04 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T04: ld r15, Y+ \n\t"  //load c[j*d+1]		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r3, r0 \n\t"		  "adc r4, r1 \n\t"		  "adc r5, r24 \n\t"		  "brcc SQR_T11 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T11: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc SQR_T12 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T12: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T13 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T13: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T14 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T14: ld r15, Y+ \n\t"  //load c[j*d+2]		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc SQR_T21 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T21: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T22 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T22: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T23 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T23: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r7, r0 \n\t"		  "adc r8, r1 \n\t"		  "adc r9, r24 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T24: ld r15, Y+ \n\t"  //load c[j*d+3]		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T31 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T31: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T32 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T32: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r7, r0 \n\t"		  "adc r8, r1 \n\t"		  "adc r9, r24 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T33: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r8, r0 \n\t"		  "adc r9, r1 \n\t"		  "adc r10, r24 \n\t"		  "inc r17 \n\t"  //j++		  "jmp SQR_LOOP2 \n\t"		  "EQ_1: ld r14, -X \n\t"  //load b0~b(d-1)		  "ld r13, -X \n\t"		  "ld r12, -X \n\t"		  "ld r11, -X \n\t"		  "ld r15, Y+ \n\t"  //load c[j*d+0]		  "mul r11, r15 \n\t"  //t=0		  "add r2, r0 \n\t"		  "adc r3, r1 \n\t"		  "adc r4, r19 \n\t"		  "brcc EQ_SQR_T01 \n\t"		  "adc r5, r19 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T01: mul r12, r15 \n\t"		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r3, r0 \n\t"		  "adc r4, r1 \n\t"		  "adc r5, r24 \n\t"		  "brcc EQ_SQR_T02 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T02: mul r13, r15 \n\t"		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc EQ_SQR_T03 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T03: mul r14, r15 \n\t"		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc EQ_SQR_T04 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T04: ld r15, Y+ \n\t"  //load c[j*d+1]		  "mul r12, r15 \n\t"  //t=1		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r19 \n\t"		  "brcc EQ_SQR_T12 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T12: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc EQ_SQR_T13 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T13: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc EQ_SQR_T14 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T14: ld r15, Y+ \n\t"  //load c[j*d+2]		  "mul r13, r15 \n\t"  //t=2		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "brcc EQ_SQR_T23 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T23: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r7, r0 \n\t"		  "adc r8, r1 \n\t"		  "adc r9, r24 \n\t"		  "adc r10, r19 \n\t"		  "ld r15, Y+ \n\t"  //load c[j*d+3]		  "mul r14, r15 \n\t"  //t=3		  "add r8, r0 \n\t"		  "adc r9, r1 \n\t"		  "adc r10, r19 \n\t"		  "SQR_LOOP2_EXIT: st Z+, r2 \n\t"  //a[i*d] = r2		  "st Z+, r3 \n\t"		  "st Z+, r4 \n\t"		  "st Z+, r5 \n\t"		  "movw r2, r6 \n\t"  //can be speed up use movw		  "movw r4, r8 \n\t"		  "mov r6, r10 \n\t"  //can be remove		  "clr r7 \n\t"		  "clr r8 \n\t"		  "clr r9 \n\t"		  "clr r10 \n\t"		  "cp r16, %2 \n\t"  //i == 4?		  "breq SQR_LOOP1_EXIT \n\t"		  "inc r16 \n\t"		  "jmp SQR_LOOP1 \n\t"		  "SQR_LOOP1_EXIT: inc r16 \n\t"  //i = 5		  "SQR_LOOP3: mov r17, r16 \n\t"  //j = i-4		  "sub r17, %2 \n\t"		  "mul r25, %2 \n\t"		  "add r0, r25 \n\t"		  "movw r26, %A1 \n\t"		  "add r26, r0 \n\t"		  "adc r27, r1 \n\t"  //load b		  "mul r17, r25 \n\t"  //j*d		  "movw r28, %A1 \n\t"		  "add r28, r0 \n\t"		  "adc r29, r1 \n\t"  //load c		  "SQR_LOOP4: mov r0, r16 \n\t"		  "sub r0, r17 \n\t"		  "cp r0, r17 \n\t"		  "breq JMP_EQ_2 \n\t"		  "brlo JMP_SQR_LOOP4_EXIT \n\t"		  "jmp SQR_LOOP4_1 \n\t"		  "JMP_EQ_2: jmp EQ_2 \n\t"		  "JMP_SQR_LOOP4_EXIT: jmp SQR_LOOP4_EXIT \n\t"		  "SQR_LOOP4_1: ld r14, -X \n\t"  //load b0~b(d-1)		  "ld r13, -X \n\t"		  "ld r12, -X \n\t"		  "ld r11, -X \n\t"		  "ld r15, Y+ \n\t"  //load c[j*d+0]		  "mul r11, r15 \n\t"  //t=0		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r2, r0 \n\t"		  "adc r3, r1 \n\t"		  "adc r4, r24 \n\t"		  "brcc SQR_T41 \n\t"		  "adc r5, r19 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T41: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r3, r0 \n\t"		  "adc r4, r1 \n\t"		  "adc r5, r24 \n\t"		  "brcc SQR_T42 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T42: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc SQR_T43 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T43: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T44 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T44: ld r15, Y+ \n\t"  //load c		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r3, r0 \n\t"		  "adc r4, r1 \n\t"		  "adc r5, r24 \n\t"		  "brcc SQR_T51 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T51: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc SQR_T52 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T52: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T53 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T53: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T54 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T54: ld r15, Y+ \n\t"  //load c		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r4, r0 \n\t"		  "adc r5, r1 \n\t"		  "adc r6, r24 \n\t"		  "brcc SQR_T61 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T61: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T62 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T62: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T63 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T63: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r7, r0 \n\t"		  "adc r8, r1 \n\t"		  "adc r9, r24 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T64: ld r15, Y+ \n\t"  //load c		  "mul r11, r15 \n\t" //t=0, b0*c		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r5, r0 \n\t"		  "adc r6, r1 \n\t"		  "adc r7, r24 \n\t"		  "brcc SQR_T71 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T71: mul r12, r15 \n\t"  //t=1		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r6, r0 \n\t"		  "adc r7, r1 \n\t"		  "adc r8, r24 \n\t"		  "brcc SQR_T72 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T72: mul r13, r15 \n\t"  //t=2		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r7, r0 \n\t"		  "adc r8, r1 \n\t"		  "adc r9, r24 \n\t"		  "adc r10, r19 \n\t"		  "SQR_T73: mul r14, r15 \n\t"  //t=3		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r8, r0 \n\t"		  "adc r9, r1 \n\t"		  "adc r10, r24 \n\t"		  "inc r17 \n\t"		  "jmp SQR_LOOP4 \n\t"		  "EQ_2: ld r14, -X \n\t"  //load b0~b(d-1)		  "ld r13, -X \n\t"		  "ld r12, -X \n\t"		  "ld r11, -X \n\t"		  "ld r15, Y+ \n\t"  //load c[j*d+0]		  "mul r11, r15 \n\t"  //t=0		  "add r2, r0 \n\t"		  "adc r3, r1 \n\t"		  "adc r4, r19 \n\t"		  "brcc EQ_SQR_T41 \n\t"		  "adc r5, r19 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"		  "adc r8, r19 \n\t"		  "adc r9, r19 \n\t"		  "adc r10, r19 \n\t"		  "EQ_SQR_T41: mul r12, r15 \n\t"		  "clr r24 \n\t"		  "lsl r0 \n\t"		  "rol r1 \n\t"		  "rol r24 \n\t"		  "add r3, r0 \n\t"		  "adc r4, r1 \n\t"		  "adc r5, r24 \n\t"		  "brcc EQ_SQR_T42 \n\t"		  "adc r6, r19 \n\t"		  "adc r7, r19 \n\t"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -