
x86 相关
Jack Tan
这个作者很懒,什么都没留下…
展开
-
x86 下 strcpy 高效实现
0. 先看个通常的实现:为了分析方便不考虑 to/from 指针为NULL情况。char *strcpy(char *to, const char *from){ char *rev = to; while(*to++ = *from++); return rev;}gcc -S test.c -o test.s 编译产生汇编码为:strcpy:原创 2007-04-09 18:09:00 · 1694 阅读 · 0 评论 -
绕过 libc 直接使用系统调用
当前版本: 0.1完成日期: 2007-6-15作者: Dajie Tan 系统调用是用户态进程切入内核态的唯一入口,是内核为用户态进程提供服务的接口。Linux Kernel 提供了大约300个左右的系统调用,作为用户空间进程访问内核的 API。C 语言环境下,经常使用的(如getpid)是系统基础库 libc 封装过的。在其后面究竟隐藏着什么样的秘密呢?1. 先看一个例子:#include i原创 2007-08-28 13:18:00 · 2030 阅读 · 0 评论 -
IA32 SSE3
1. 简介SSE3 系 Intel Streaming SIMD Extensions 的第3次扩展,相较于 SSE2,Intel 新加入了 13 条指令。其最早于 2004 年在 Pentium 4 Prescott 中引入,后续 IA32 的 CPU 都支持之。2. 支持 SSE3 的 CPU * AMD: o Athlon 64 (since Venice Stepp原创 2007-06-19 16:31:00 · 1407 阅读 · 0 评论