?
Will Dir, allerdings mit 32 Bit Inline-Assembler in einem C-Programm, zeigen, wie man eine Suche mittels repe cmpsb und folgendem jecxz durchführen kann.
#include <stdio.h>
#define STR 3
int main(void)
{
char buf[] = "Hallo, wie geht es Dir?";
char suchstring[STR+1] = "wie";
int* Adresse = NULL;
int Position;
__asm
{
lea esi, buf
L1:
push esi
lea edi, suchstring
mov ecx, STR
repe cmpsb
jecxz Uebereinstimmung
pop esi
inc esi
or byte ptr [esi+STR], 0
jnz L1
jmp Ende
Uebereinstimmung:
pop Adresse
mov esi, Adresse
lea edi, buf
sub esi, edi
mov Position, esi
Ende:
}
if (Adresse)
printf("Suche erfolgreich an Position %d\n", Position);
return 0;
}
Bei 16 Bit Programmierung ändern sich die Registerbezeichnungen und aus jecxz wird jcxz .
mfg