Cita:
ando buscando algun fuente que me demuestre la manera mas eficiente de buscar , basicamente un conjunto de caracteres o string en una zona de memoria donde se han cargado varios strings
|
Me imagino que los controladores los programarás con ASM con un juego reducido de instrucciones propias de cada controlador, como sugerencia te puedo decir que te bases en el StrPos de Delphi, que no hace mas que buscar en un sector de memoria otro sector (recordemos que un PChar es un puntero a caracter utilizado para cadenas terminadas en #0) y su fuente está íntegramente en assembler.
Código:
function StrPos(const Str1, Str2: PChar): PChar; assembler;
asm
PUSH EDI
PUSH ESI
PUSH EBX
OR EAX,EAX
JE @@2
OR EDX,EDX
JE @@2
MOV EBX,EAX
MOV EDI,EDX
XOR AL,AL
MOV ECX,0FFFFFFFFH
REPNE SCASB
NOT ECX
DEC ECX
JE @@2
MOV ESI,ECX
MOV EDI,EBX
MOV ECX,0FFFFFFFFH
REPNE SCASB
NOT ECX
SUB ECX,ESI
JBE @@2
MOV EDI,EBX
LEA EBX,[ESI-1]
@@1: MOV ESI,EDX
LODSB
REPNE SCASB
JNE @@2
MOV EAX,ECX
PUSH EDI
MOV ECX,EBX
REPE CMPSB
POP EDI
MOV ECX,EAX
JNE @@1
LEA EAX,[EDI-1]
JMP @@3
@@2: XOR EAX,EAX
@@3: POP EBX
POP ESI
POP EDI
end;
Como sabrás, el gran problema reside en que no creo que tengas la riqueza de registros e instrucciones de un 8086 o 80386, y seguramente estas funciones están escritas para este último.
Saludos!