当前位置: 代码迷 >> 汇编语言 >> 80X86字符串中给定字符的轮换
  详细解决方案

80X86字符串中给定字符的轮换

热度:6930   发布时间:2013-02-26 00:00:00.0
80X86字符串中给定字符的替换
要求,将字符串中所有的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: