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

原创 2011年01月15日 16:20:00

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

    }

}

相关文章推荐

c++类的反汇编代码的实现【DEBUG】

int  main( ){ 01104810  push        ebp   01104811  mov         ebp,esp   01104813  sub         esp,...
  • lfrouse
  • lfrouse
  • 2013年07月04日 23:02
  • 374

C++语言的数组在汇编代码中的实现【DEBUG】

#include int  main(){ 00F64350  push        ebp   00F64351  mov         ebp,esp   00F64353  sub     ...
  • lfrouse
  • lfrouse
  • 2013年07月02日 19:45
  • 316

c++函数的返回值存在哪?反汇编代码分析

这几天一直在给同学讲数据结构和算法的题,讲题的过程中突然想到这函数的返回值究竟是存放在哪的,为什么可以通过函数的调用来直接给变量赋值。仔细想想这么多年居然没有深究过这个问题,太不应该,于是今天花了些时...

C++中_cdecl _stdcall _fastcall _thiscall函数调用总结(对照汇编代码)

首先,我们要学会在Visual Studio 2008中学会查看C++代码对应的汇编代码。给程序添加断点并开始调试程序后,对文件中间右键=》转到反汇编,即可看到汇编代码。 汇编代码用//注释,说明用/...

解析C++汇编代码-局部变量空间分配及程序栈操作

[前言]对于一个资深程序员来说,了解我们的程序最底层的运行机制是很重要的。特别是对于C/C++程序员来说,这点显得尤为突出。在很多情况下,知道其底层运行机制对我们理解更深层次的东西是非常有帮助的。比如...

C++反汇编代码分析--函数调用

代码如下:     #include "stdlib.h"     int sum(int a,int b,int m,int n)     {          return a+b...

游戏外挂编程二之C/C++内联汇编代码和DLL

游戏外挂编程二之C/C++内联汇编代码和DLL 合肥程序员群:49313181。    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365...

C++反汇编代码分析--函数调用

代码如下:     #include "stdlib.h"     int sum(int a,int b,int m,int n)     {          return a+b;  ...

从汇编代码学习C++语言2—类复制构造函数

从汇编代码学习C++语言2—类复制构造函数         类的复制构造函数同样是C++类的重要函数。         Code 1没有复制构造函数,我们将从汇编代码分析: class Obje...

C++对象在内存中的布局(读汇编代码)

C++对象在内存中的布局 研究方法以及ARM调用规范 最近在对C++编写的SO库进行逆向,如果掌握了对象的布局,那么逆向也能轻松些,所以萌发了研究对象布局的想法。 本文采用的研究方法是:编写C+...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 字符串拷贝 汇编代码实现
举报原因:
原因补充:

(最多只允许输入30个字)