![]() |
Probleme mit ASM
Hi, ich will in ASM wie in Delphi mit succ eine String um jeweils einen Buchstaben "erhöhen" Ist aber ein Fehler im Code den ich nicht finde!!! :)
Code:
procedure TForm1.Button4Click(Sender: TObject);
var zeile : string; begin zeile := edit3.text; asm push Ebx {Ebx retten} lea ebx,zeile {Adresse von Zeile holen} mov cl,[ebx] {in das 8-bit Register die untersten 8-bit von ecx- die Länge des Strings} inc ebx {ebx einen weiter setzen} mov ch,1 {ch auf 1 setzen --> Zähler} @marke: mov al,[ebx] {Buchstaben holen} inc al {codieren} mov [ebx],al {zurückschreiben} inc ch {zählen} inc ebx {nächster Buchstabe} cmp ch,cl jb @marke pop ebx end; edit3.Text := zeile; end; |
Re: Probleme mit ASM
Habs schon rausbekommen, die Länge des Stings ist anzugeben!
Code:
Bye
zeiche:string[100];
|
Re: Probleme mit ASM
Oder
Delphi-Quellcode:
den Standardmäßig ist String = AnsiString.
Var Zeile: ShortString;
Und da greifst du so ja nur auf den Zeiger zum String und nicht den String zu. |
Re: Probleme mit ASM
@MisterNiceGuy
Denk' noch an den Sonderfall der Buchstaben 'z' und 'Z'! Mach' da dann mal am Besten ein 'a' bzw. 'A' draus. Gruß DANNYBOY |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz