?? memory.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 + -