汇编学习笔记(21) - IO 保护

基本概念

IOPL:

  IOPL 和 DPL 等类似是正对IO操作的特权保护级别,IOPL存储在 标志寄存器 EFLAGS 中,他指示了当前IO操作的保护级别,只有当CPL<= IOPL是IO操作才被允许

IO位图:

  IO位图存储在TSS段中,是按位表示的IO端口的随意读写权限,比如位M 就表示IO端口M是否可随意读写,IO与IOPL是或的关系,即只要满足一个条件即可,0 表示允许 1表示不允许

 

  所以可以看出,IO特权级的宝库是这个任务切换的,而不是全局的

IO操作特权级

 

 

标记寄存器的保护

  由于IOPL是存储在标记志存器上的,为了不允许随意改变IOPL,所以对于标记寄存器上的某些字段,也是存在保护的,保护如下

  可改变标记寄存器的指令包括, PUSHF POPF CLI STI 等

 

posted @ 2020-02-22 23:28  蹦蹦骑士  阅读(840)  评论(0编辑  收藏  举报