系统调用:从 trap 到 iret
SYSTEM CALL · MODE SWITCH
用户空间 非特权 · CPL=3
用户程序(应用代码)
mov eax, 4 ; 调用号 = write
mov ebx, fd ; 准备参数
陷入int 0x80 ; trap 指令
mov ecx, ret ; 下一条指令
EAX = 4
EBX = fd
已保存: PC / PSW
内核空间 特权 · CPL=0
中断向量表(硬件查表 / OS 填内容)
0x00 除零handler₀
0x80 系统调用sys_entry ◀
0x0E 缺页handler₁
系统调用服务例程 sys_write
普通检查参数合法性
普通查文件表 / 拷贝数据
特权写设备控制寄存器
特权iret ; 中断返回
PC
用户态执行
核心态执行
硬件自动完成(非指令)
特权指令