久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: memcpy匯編 [打印本頁]

作者: 51黑tt    時間: 2016-3-5 23:59
標題: memcpy匯編
意間在Linux內核中發現這么一段匯編代碼,更準確地說應該是gcc內聯匯編,寫得很精彩,拿出來和大家分享一下。
代碼是在include/asm-i386/string.h中,是針對i386對memcpy做進一步優化。我們知道,一個簡單的memcpy其實和strcpy差不多,區別只是前者檢查的是復制的個數,而后者檢查的是當前字符是否是’\0′。
而這顯然還有很大的優化余地,首先像這種非常常用的庫函數是可以用匯編重寫來提高速度的。當然了,可移植性是降低了,但我們可以針對每個平臺寫一套匯編。這樣速度上的提升還是蠻樂觀的。其次,memcpy顯然沒必要一個一個字節地復制,其實我們最多每次也就復制4個字節(當然是在i386上),但如果復制數量大的話,這種提升還是很明顯的。于是下面的匯編就出來樂~!
評論如下:
34~36
rep=>重復
movsl=>以long為單位拷貝,從from(%esi)到to(%edi),復制n/4次。別擔心,這里是i386。
37~38
恩,用n/4去和n相與。
39
若n/4個4就是全部則完成,跳轉到后面的標號,結束。
40
還有剩下的,好,把n%4剩下的一個一個字節地復制。
41~44
這里看不懂的就去學gcc的嵌入匯編語法吧!






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品在线看 | 人人亚洲| 成人免费看片 | 久草精品视频 | 91精品久久久久久久久 | 日韩久久精品 | 91爱爱·com| 欧美久久久网站 | 日韩成人影院 | 欧美日韩三级在线观看 | 91精品国产欧美一区二区成人 | 91社区在线高清 | 三级黄色片在线播放 | 一区二区三区视频播放 | 国产无套一区二区三区久久 | 一级毛片视频免费观看 | 久久精品视频免费看 | 天天干狠狠 | 欧美一级黄色片免费观看 | 久久久久久久av麻豆果冻 | 成人片网址 | 亚洲一区二区三区免费观看 | 一级毛片免费完整视频 | 免费国产一区二区 | 欧美激情第一区 | 日韩精品在线视频免费观看 | 午夜精品久久久久久 | 精品一区国产 | 激情网五月天 | 91影院在线观看 | 九九热在线观看 | 久久精品免费观看 | 久久一区二区三区四区 | 亚洲毛片在线观看 | 精品国产免费一区二区三区演员表 | 一级片在线观看视频 | 色视频网站在线观看 | 91久久久久久久久久久久久 | 久草欧美视频 | 国产日韩精品视频 | 一呦二呦三呦国产精品 |