Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#91

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 16:06
Oh Mist du hast Recht. Das ist das Problem
Bei jcxz springt er je nachdem wo er gerade ist zu früh raus.

Danke! Da war ich etwas blind..
Wusste nicht dass man esi/edi sichern muss. Hab grad nachgeguckt und du hast Recht.
Hab die Funktion angepasst:
Delphi-Quellcode:
function CharCountAsm(AStr: PChar; AChar: Char; len: Integer): Integer;
label loop_start, loop_ende, ende;
asm
  push edi
  cld
  mov edi, AStr
  mov ax, AChar
  mov ecx, len
  xor edx, edx
loop_start:
  repnz scasw
  jecxz loop_ende
  inc edx
  jmp loop_start
loop_ende:
  jnz ende
  inc edx
ende:
  mov result, edx
  pop edi
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat