系统调用:从 trap 到 iret SYSTEM CALL · MODE SWITCH

PSW 状态位0 · 用户态
USER

用户空间 非特权 · 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
用户程序

用户态执行 核心态执行 硬件自动完成(非指令) 特权指令