28-03-2013, 11:34 AM
السلام عليكم ورحمة الله وبركاته
دالة FastFillChar
دالة FastFillChar
PHP كود :
procedure FastFillChar(var X ;Count:integer;Value:Char);assembler;
asm
// BY SMP3
PUSH EBX
PUSH ESI
PUSH EDI
CMP EDX,8
JLE @FillCarefully
mov Ch,cl
MOVD MM0,ECX
PUNPCKLWD MM0, MM0
PUNPCKLDQ MM0, MM0
@NextFill:
MOVQ [EAX], MM0 {Fill 8 Char}
ADD EAX,8
SUB EDX,8
CMP EDX,8
JGE @NextFill
EMMS
TEST EDX,EDX
JNE @FillCarefully
JMP @FIN
@FillCarefully:
{If Count or EDX is smal than 8 }
MOV [EAX],CL
DEC EDX
JE @FIN
MOV [EAX+1],CL
DEC EDX
JE @FIN
MOV [EAX+2],CL
DEC EDX
JE @FIN
MOV [EAX+3],CL
DEC EDX
JE @FIN
MOV [EAX+4],CL
DEC EDX
JE @FIN
MOV [EAX+5],CL
DEC EDX
JE @FIN
MOV [EAX+6],CL
DEC EDX
JE @FIN
MOV [EAX+7],CL
DEC EDX
JE @FIN
MOV [EAX+8],CL
DEC EDX
JE @FIN
@FIN:
POP EDI
POP ESI
POP EBX
end;
procedure FastFillZero(var X ;Count:integer);assembler;
asm
XOR ECX,ECX {Char = 0}
CALL FastFillChar
end;

