Einzelnen Beitrag anzeigen

ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#9

Re: [MASM] strlen Funktion

  Alt 24. Jan 2009, 16:29
Hallo,

nach ewigen herumprobieren und schließlich einen debugger bin ich auf den Fehler drauf gekommen.
Es lag eigentlich gar nicht daran das eine Word Grenze überschritten wird.

Der Fehler lag daran, das ich die aktuelle Position in eax Speicher.
Nach dem Aufruf von

Code:
invoke MessageBox, 0, ADDR DATA[eax], ADDR AppNameDefault, MB_OK
wird aber das eax Register überschrieben


Hier meine Überarbeitet strlen Funktion

Code:
STRLEN_DATA_TO_CX macro
   xor cx,cx

   xor eax,eax              <--- Neu, lösche überschriebenes eax Register
   mov ax, DATA_POINTER    <--- Neu, schreibe meine aktuelle Position wieder hinein

   .WHILE DATA[eax] != 0
      inc cx
      inc eax
   .ENDW

   inc cx              <--- Neu, +1 dazu, wegen dem 0 Byte vom Vorstring
endm
  Mit Zitat antworten Zitat