内联汇编实现 memcpy 和 memset
2015-07-01 10:44
561 查看
#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; }
相关文章推荐
- 浅谈软件性能测试中关键指标的监控与分析
- ckeditor图片上传
- 浅谈Silverlight系统支持
- 程序员获取新编程技能的5个技巧?
- 数数
- add-two-numbers
- 《Java课程实习》日志(周二)
- 版本控制系统(VCS)的发展史
- Hello, blog!
- setBackgroundImage和setImage
- 空欢喜一场!Win10专业版只要12.99元?
- Solr: integrate carrot2 with solr-5.1.0
- jstl标签库的引入方式
- 学习zigbee,CC2530中的问题:关于P0,P1,P2端口的设置问题(SEL,DIR,INP)
- 在Xcode中添加pch文件的操作
- 批处理:Windows主机通过FTP下载远程Linux主机上文件
- C#算法之判断一个字符串是否是对称字符串
- 编译原理中的短语、直接短语、句柄
- PHP+shell实现多线程的方法
- jsp页面值存入mySql数据库乱码问题 总结 很实用!!!