ich diesen Code haben, die einen Großbuchstaben Kleinbuchstaben ändern sollte:x86 Assembly: Ändern Sie einen Großbuchstaben zu einem Kleinbuchstaben
void tolower(char *text)
{
_asm
{
mov esi, text;
mov ecx, 0;
mov bl, 32;
opakuj:
cmp [esi + ecx], 0;
je konec;
cmp [esi + ecx], 97;
jbe dolower;
add ecx, 1;
jmp opakuj;
dolower:
mov [esi + ecx], bl;
add ecx, 1;
jmp opakuj;
konec:
}
}
mov [esi + ecx], bl
funktioniert nicht. Ich erhalte eine
Zugriffsverletzung Schreibfehler
Was mache ich falsch?
S.S .: Ich kann kein anderes Array oder Zeiger oder so etwas verwenden. Ich muss diesen Buchstaben neu schreiben.
Könnte es sein, dass Sie versuchen, eine Zeichenfolge im schreibgeschützten Speicher zu ändern, z. B. eine Literalzeichenfolge? etwas wie "tolower (" HALLO WORLD ");'? Sie sollten nicht versuchen, Literalstrings zu modifizieren, nur Kopien. –