⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.h

📁 linux0.11内核源代码
💻 H
字号:
/** NOTE!!! memcpy(dest,src,n) assumes ds=es=normal data segment. This* goes for all kernel functions (ds=es=kernel space, fs=local data,* gs=null), as well as for all well-behaving user programs (ds=es=* user data space). This is NOT a bug, as any user program that changes* es deserves to die if it isn't careful.*//** 注意!!!memcpy(dest,src,n)假设段寄存器ds=es=通常数据段。在内核中使用的* 所有函数都基于该假设(ds=es=内核空间,fs=局部数据空间,gs=null),具有良好* 行为的应用程序也是这样(ds=es=用户数据空间)。如果任何用户程序随意改动了* es 寄存器而出错,则并不是由于系统程序错误造成的。*///// 内存块复制。从源地址src 处开始复制n 个字节到目的地址dest 处。// 参数:dest - 复制的目的地址,src - 复制的源地址,n - 复制字节数。// %0 - edi(目的地址dest),%1 - esi(源地址src),%2 - ecx(字节数n),#define memcpy(dest,src,n) ({ \void * _res = dest; \__asm__ ( "cld;rep;movsb" \ // 从ds:[esi]复制到es:[edi],并且esi++,edi++。// 共复制ecx(n)字节。:: "D" ((long)(_res)), "S" ((long)(src)), "c" ((long) (n)) \: "di", "si", "cx"); \_res; \})

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -