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

📄 23.html

📁 linux 0.11中文版 有注释
💻 HTML
字号:
<html>
<head>
<title>include/asm/memory.h</title>
<meta name='robots' content='noindex,nofollow'>
<meta name='generator' content='GLOBAL-5.4.1'>
</head>
<body text='#191970' bgcolor='#f5f5dc' vlink='gray'>
<a name='TOP'><h2><a href='../mains.html'>root</a>/<a href='../files/99.html'>include</a>/<a href='../files/100.html'>asm</a>/memory.h</h2>
<i><font color='green'>/* [&lt;][&gt;][^][v][top]<a href='#BOTTOM'>[bottom]</a><a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</font></i>
<hr>
<h2><a href='59.html#L26' title='Included from 26 in kernel/blk_drv/ramdisk.c.'>INCLUDED FROM</a></h2>
<hr>
<pre>
<a name='L1'><i><font color='green'>/*</font></i>
<a name='L2'><i><font color='green'>* NOTE!!! memcpy(dest,src,n) assumes ds=es=normal data segment. This</font></i>
<a name='L3'><i><font color='green'>* goes for all kernel functions (ds=es=kernel space, fs=local data,</font></i>
<a name='L4'><i><font color='green'>* gs=null), as well as for all well-behaving user programs (ds=es=</font></i>
<a name='L5'><i><font color='green'>* user data space). This is NOT a bug, as any user program that changes</font></i>
<a name='L6'><i><font color='green'>* es deserves to die if it isn't careful.</font></i>
<a name='L7'><i><font color='green'>*/</font></i>
<a name='L8'><i><font color='green'>/*</font></i>
<a name='L9'><i><font color='green'>* 注意!!!memcpy(dest,src,n)假设段寄存器ds=es=通常数据段。在内核中使用的</font></i>
<a name='L10'><i><font color='green'>* 所有函数都基于该假设(ds=es=内核空间,fs=局部数据空间,gs=null),具有良好</font></i>
<a name='L11'><i><font color='green'>* 行为的应用程序也是这样(ds=es=用户数据空间)。如果任何用户程序随意改动了</font></i>
<a name='L12'><i><font color='green'>* es 寄存器而出错,则并不是由于系统程序错误造成的。</font></i>
<a name='L13'><i><font color='green'>*/</font></i>
<a name='L14'><i><font color='green'>//// 内存块复制。从源地址src 处开始复制n 个字节到目的地址dest 处。</font></i>
<a name='L15'><i><font color='green'>// 参数:dest - 复制的目的地址,src - 复制的源地址,n - 复制字节数。</font></i>
<a name='L16'><i><font color='green'>// %0 - edi(目的地址dest),%1 - esi(源地址src),%2 - ecx(字节数n),</font></i>
<a name='L17'><font color='darkred'>#define</font> <a href='../R/529.html' title='Multiple refered from 3 places.'>memcpy</a>(dest,src,n) (<font color='red'>{</font> \
<a name='L18'><b>void</b> * _res = dest; \
<a name='L19'><b>__asm__</b> ( "cld;rep;movsb" \ <i><font color='green'>// 从ds:[esi]复制到es:[edi],并且esi++,edi++。</font></i>
<a name='L20'><i><font color='green'>// 共复制ecx(n)字节。</font></i>
<a name='L21'>:: "D" ((<b>long</b>)(_res)), "S" ((<b>long</b>)(src)), "c" ((<b>long</b>) (n)) \
<a name='L22'>: "di", "si", "cx"); \
<a name='L23'>_res; \
<a name='L24'><font color='red'>}</font>)
<a name='L25'>
</pre>
<hr>
<a name='BOTTOM'>
<i><font color='green'>/* [&lt;][&gt;][^][v]<a href='#TOP'>[top]</a>[bottom]<a href='../mains.html'>[index]</a><a href='../help.html'>[help]</a> */</font></i>
</body>
</html>

⌨️ 快捷键说明

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