关闭

C++ 字符串拷贝 汇编代码实现

650人阅读 评论(0) 收藏 举报

void asmCpy(char* str1, char* str2)

{

    _asm{

        mov eax, str1 //将str1的地址赋值给eax

        mov ecx, str2 //将str2的地址赋值给ecx

s1:

        mov bl, [eax] //去eax地址所指向的值,赋值给bl

        cmp [eax], 0 //比较当前这个字符是不是NULL

        je end1 //如果是NULL,就是字符串结束了,跳转到end1

//如果不是,则继续下面的代码

        mov [ecx], bl //将bl里面的值赋值给ecx所指向的内存

        add eax, 1 // eax的地址值增加1

        add ecx, 1 // ecx的地址值增加1

        jmp s1 // 跳到前面的循环

end1:

        mov [ecx], 0 //给最后一个字符设置成NULL

    }

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13544次
    • 积分:272
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类