21,458
社区成员
发帖
与我相关
我的任务
分享
CopyImplement proc
push rbp
sub rsp, 30h
lea rbp, [rsp+30h]
mov r10, rdx
mov rax, r8
mov rdx, r8
shr rax, 8
shl rax, 8
sub rdx, rax
shr rax, 8
test rax, rax
jz copy_finish
loop_copy:
prefetchnta 256[r10]
prefetchnta 288[r10]
prefetchnta 320[r10]
prefetchnta 352[r10]
prefetchnta 384[r10]
prefetchnta 416[r10]
prefetchnta 448[r10]
prefetchnta 480[r10]
MOVDQA xmm0, [r10];
MOVDQA xmm1, 16[r10];
MOVDQA xmm2, 32[r10];
MOVDQA xmm3, 48[r10];
MOVDQA xmm4, 64[r10];
MOVDQA xmm5, 80[r10];
MOVDQA xmm6, 96[r10];
MOVDQA xmm7, 112[r10];
MOVDQA xmm8, 128[r10];
MOVDQA xmm9, 144[r10];
MOVDQA xmm10, 160[r10];
MOVDQA xmm11, 176[r10];
MOVDQA xmm12, 192[r10];
MOVDQA xmm13, 208[r10];
MOVDQA xmm14, 224[r10];
MOVDQA xmm15, 240[r10];
MOVDQA [RCX], xmm0;
MOVDQA 16[RCX], xmm1;
MOVDQA 32[RCX], xmm2;
MOVDQA 48[RCX], xmm3;
MOVDQA 64[RCX], xmm4;
MOVDQA 80[RCX], xmm5;
MOVDQA 96[RCX], xmm6;
MOVDQA 112[RCX], xmm7;
MOVDQA 128[RCX], xmm8;
MOVDQA 144[RCX], xmm9;
MOVDQA 160[RCX], xmm10;
MOVDQA 176[RCX], xmm11;
MOVDQA 192[RCX], xmm12;
MOVDQA 208[RCX], xmm13;
MOVDQA 224[RCX], xmm14;
MOVDQA 240[RCX], xmm15;
add RCX, 256;
add r10, 256;
dec rax;
jnz loop_copy;
copy_finish:
test rdx, rdx
jz copyByteFinish
loop_copyByte:
mov r11b, [r10]
mov [rcx], r11b
inc r10
inc rcx
dec rdx
jnz loop_copyByte
copyByteFinish:
lea rsp, [rbp]
pop rbp
ret
CopyImplement endp