免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1528 | 回复: 0
打印 上一主题 下一主题

内核中一段汇编源码,愿与大家一起交流分析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-27 18:50 |只看该作者 |倒序浏览
在内核中进行文件读写前,往往要对数据缓存地址进行检查,看是否可读写,下面这个宏就是用来从
addr处读一个byte到x中,但是下面的汇编代码只能看出大概(ldrdt,mov),求高手给予更多的
分析指点。
#define __get_user_asm_byte(x,addr,err)                                \
        __asm__ __volatile__(                                        \
        "1:        ldrbt        %1,[%2],#0\n"                                \
        "2:\n"                                                        \
        "        .section .fixup,\"ax\"\n"                        \
        "        .align        2\n"                                        \
        "3:        mov        %0, %3\n"                                \
        "        mov        %1, #0\n"                                \
        "        b        2b\n"                                        \
        "        .previous\n"                                        \
        "        .section __ex_table,\"a\"\n"                        \
        "        .align        3\n"                                        \
        "        .long        1b, 3b\n"                                \
        "        .previous"                                        \
        : "+r" (err), "=&r" (x)                                        \
        : "r" (addr), "i" (-EFAULT)                                \
        : "cc")
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP