- 14
- 0
- 约9.89千字
- 约 42页
- 2018-12-21 发布于河南
- 举报
Linux系统调用_详细全过程
用寄存器传递参数必须满足两个条件: 每个参数的长度不能超过寄存器的长度 参数的个数不能超过6个(包括eax中传递的系统调用号);否则,需要用一个单独的寄存器指向进程地址空间中这些参数值所在的一个内存区即可 返回值必须写到eax寄存器中 系统调用的参数传递 参数传递举例 处理write系统调用的sys_write服务例程声明如下 该函数期望在栈顶找到fd,buf和count参数 在封装sys_write()的封装例程中,将会在ebx、ecx和edx寄存器中分别填入这些参数的值,然后在进入system_call时,SAVE_ALL会把这些寄存器保存在堆栈中,进入sys_write服务例程后,就可以在相应的位置找到这些参数 asmlinkage使得编译器不通过寄存器(x=0)而 使用堆栈传递参数 SAVE_ALL Sys_write需要的参数 系统调用的参数传递-举例 设C库中封装的系统调用号为3的函数原形如下: int sys_func(int para1, int para2) C编译器产生的汇编伪码如: …movl 0x8(%esp),%ecx /*将用户态堆栈中的para2放入ecx Movl 0x4(%esp),%ebx /*#将用户态堆栈中的para1放入ebx Movl $0x3,%eax /*系统调用号保存在eax中int$0
您可能关注的文档
- java异常类.ppt
- Java_Util包.ppt
- Java算法第2章.ppt
- JIT与精实系统【www.leanchina.net】.PPT.ppt
- Kohonen网络在烟叶动态分类中的应用.doc
- Kmart_破产之路.ppt
- JIT及时生产与临界生产【www.leanchina.net】.PPT.ppt
- linux下shell编程简介33_简报1.ppt
- Linux基础1-用户与网络.ppt
- Linux基础与系统管理-03.ppt
- 中国国家标准 GB/T 48336.304-2026星闪无线通信系统 第304部分:基础服务层 5G蜂窝网络融合.pdf
- CCAA《管理体系认证基础》第2版+三色笔记office完整版-2026.docx
- RCS-901系列超高压线路成套保护装置技术和使用说明书.pdf
- RCS-902A(B.C.D)型超高压线路成套保护装置技术说明书.pdf
- PCS-923A断路器失灵起动及辅助保护测控装置技术使用说明书.pdf
- RCS-924A型T区保护装置技术和使用说明书.pdf
- GB/T 48349.3-2026信息技术 数字视网膜系统 第3部分:端子系统.pdf
- 中国国家标准 GB/T 48349.3-2026信息技术 数字视网膜系统 第3部分:端子系统.pdf
- 《GB/T 48349.3-2026信息技术 数字视网膜系统 第3部分:端子系统》.pdf
- 中国国家标准 GB/T 48355-2026石化化工用软起动装置.pdf
最近下载
- 《校园冬季传染病预防知识班会》课件(三套).pptx
- 上海市华二附中2025-2026学年高二上学期期中考试语文试题(含答案)2025.pdf VIP
- 钢机构设计原理_夏志斌_课后习题答案.doc VIP
- CNC机械操作安全培训课件.pptx VIP
- 学会倾听与表达-破解无效对话---课后测试及答案.pdf VIP
- 生物多样性保护导论 自然保护区管理.ppt
- 电动阀门调试记录.pdf VIP
- 2025年重庆市政务服务中心(综合窗口)人员招聘笔试备考题库及答案.docx VIP
- 2026秋新教材苏教版小学数学五年级上册(全册)教学设计(附目录P299).docx
- 电力行业AI系列报告四:固态变压器,AIDC供配电架构的终极方案.pptx VIP
原创力文档

文档评论(0)