دالة FastFillChar
#1
السلام عليكم ورحمة الله وبركاته
دالة 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
; 
الرد


الردود في هذا الموضوع
دالة FastFillChar - بواسطة SMP3 - 28-03-2013, 11:34 AM
دالة FastFillChar - بواسطة virtual - 28-03-2013, 08:09 PM
دالة FastFillChar - بواسطة SMP3 - 28-03-2013, 09:12 PM
دالة FastFillChar - بواسطة virtual - 29-03-2013, 11:42 AM
دالة FastFillChar - بواسطة SMP3 - 29-03-2013, 12:50 PM
دالة FastFillChar - بواسطة virtual - 29-03-2013, 06:30 PM
دالة FastFillChar - بواسطة S.FATEH - 29-03-2013, 06:45 PM
دالة FastFillChar - بواسطة SMP3 - 29-03-2013, 08:11 PM
دالة FastFillChar - بواسطة S.FATEH - 30-03-2013, 12:01 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم