Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#89

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 14:41
Delphi-Quellcode:
function CharCountAsm(AStr: PChar; AChar: Char; len: Integer): Integer;
label loop_start, loop_ende, ende;
asm
  cld
  // Explizite Zuweisung der Parameter in die Register
  mov edi, AStr
  mov ax, AChar
  mov ecx, len
  xor edx, edx
loop_start:
  repnz scasw
  jcxz loop_ende
  inc edx
  jmp loop_start
loop_ende:
  jnz ende
  inc edx
ende:
  mov result, edx
end;
IMO müsste doch statt jcxz loop_ende die 32-Bit-Version jecxz loop_ende benutzt werden.

Außerdem wird edi nirgends gerettet und wieder hergestellt.

Geändert von gammatester (13. Jul 2018 um 14:55 Uhr)
  Mit Zitat antworten Zitat