我有了這個代碼,應該改變大寫字母爲小寫字母:x86彙編:更改一個大寫字母爲小寫字母
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
不起作用。我得到一個
訪問衝突寫入錯誤
我在做什麼錯?
P.S .:我不能使用其他數組或指針或類似的東西。我必須重寫那個char。
難道是你試圖修改只讀內存中的字符串,如文字字符串?像'tolower(「HELLO WORLD」);'?您不應該嘗試修改文字字符串,只能複製。 –