要求,将字符串中所有的A替换成a并输出新产生的字符串。如果没有A则不替换;使用串操作指令,从串首到串尾进行扫描,发现一个替换一个。一定给分,求大神,一定用80X86啊,谢谢
------解决方案--------------------------------------------------------
假定是32位程序,字符串地址为esi,新串的长度是edi,字符串长度为ecx,则可使用如下代码片段
or ecx,ecx
jz loop_end ;长度为0则什么也不做
loop_1:
mov al, [esi]
cmp al, 'a'
jnz next_00
sub al,32; 'a'的ASCII比'A'大32
next_00:
mov [edi],al
inc esi
inc edi
loop loop_1
loop_end: