博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内联汇编实现 memcpy 和 memset
阅读量:5310 次
发布时间:2019-06-14

本文共 727 字,大约阅读时间需要 2 分钟。

#pragma check_stack( off)LPVOID   __cdecl _memcpy(void * dst, void* src,  size_t size){	int dwSize = size/4;	int byteSize = size%4;	__asm{		mov edi,dst		mov esi,src		mov ecx,dwSize		rep movs dword ptr es:[edi],dword ptr ds:[esi]		mov ecx,byteSize		rep movs byte  ptr es:[edi],byte ptr ds:[esi]	}	return dst;}#pragma check_stack( off)LPVOID    __cdecl  __memset( void * dst,  int val,  size_t size){ 	int dwSize = size/4;	int byteSize = size%4;	int fixVal;	__asm{		mov eax,val		lea edi,  fixVal		mov ecx,4 		rep stos byte ptr es:[edi]				mov eax, fixVal		mov ecx, dwSize		mov edi,dst		rep stos dword ptr es:[edi]		mov ecx, byteSize		rep stos byte ptr es:[edi]	}	return dst;}

  

转载于:https://www.cnblogs.com/lyo1005/p/4612647.html

你可能感兴趣的文章
模块搜索路径
查看>>
如何成为一名优秀的程序员?
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
Working with Characters and Strings(Chapter 2 of Windows Via C/C++)
查看>>
vim中文帮助教程
查看>>
Android 创建与解析XML(四)—— Pull方式
查看>>
CodeForces 411B 手速题
查看>>
同比和环比
查看>>
SpringMvc拦截器运行原理。
查看>>
MySQL基础3
查看>>
云计算数据与信息安全防护
查看>>
全局设置导航栏
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
9款免费的Windows远程协助软件
查看>>
Maven(八) Maven项目和testng结合应用
查看>>
iOS 的 set.get.构造方法
查看>>