
Intel386
TM
SX微处理器
几个指令特别是那些申请
在多任务处理和保护模式是可用
能够仅在保护模式。因此试图
执行在实模式下的指令或
在虚拟8086模式下产生异常错误6
LTR
LLDT
LAR
LSL
ARPL
STR
SLDT
VERR
VERW
在地图上每一位对应一个IO端口字节
例如比特为端口41被发现在地址
我O映射基地
a
5位偏移1 ,处理器测试
相对应的所有的I O地址的位
例如通过双的I O操作跨越
字操作测试对应于四种四位
相邻字节的地址,如果任何测试位被设置
处理器信号一般保护性异常如
所有的测试位为零的IO操作可能
继续
这是没有必要为I O许可映射到
代表所有的I O地址I O地址没有
由图跨越被视为横竖单
在地图上的位
我O映射基地
应该是在
至少有一个字节不到的TSS的限制的最后字节
超越I O映射信息必须包含
全1
因为I O许可地图是在TSS段
换货不同的任务可以有不同的地图。因此
该操作系统可以通过分配端口到一个任务
改变的IO许可映射在任务的TSS
重要的实现说明
外
IO的映射信息在IO中的最后一个字节
许可位图
必须
将一个字节包含全1
全部为1的字节必须的限度内
英特尔386 SX CPU的TSS段(见图4月8日)
中断处理
为了全力支持的8086仿真
在虚拟8086模式下机器中断han-
DLED以一种独特的方式在虚拟运行时
模式下,所有中断和异常涉及优惠可
LEGE变回主机英特尔386 SX Microproc-
ESSOR操作系统的英特尔386 SX Microproc-
ESSOR操作系统确定是否中断
来自保护模式应用程序或从
通过检查虚拟机位虚拟模式程序
EFLAGS映像保存在栈上
当一个虚拟模式的程序被中断, EX-
ecution传递到中断例程在0电平
VM位被清零但是虚拟机位仍然设定
堆栈上的EFLAG图像
英特尔386 SX微处理器操作系统中
反过来处理异常或中断,然后重新
打开控制8086程序中的英特尔386 SX
微机操作系统可以选择让
8086操作系统处理中断或
可仿效的中断处理程序的功能
例如,许多8086的操作系统调用是
通过在堆栈上推的参数和访问
然后执行一个INT n个指令如果IOPL设置
0,那么所有的INT n个指令将被拦截
英特尔386 SX微处理器操作系统
这是在保护─ IOPL敏感的指示
编辑方式有
IN
的STi
OUT
CLI
插件
前前后后
REP INS
REP OUTS
在虚拟8086模式下指令
IOPL敏感
INT
的STi
PUSHF CLI
POPF
IRET
该PUSHF POPF和IRET指令IOPL-
在虚拟8086模式下只有这条规定的敏感
允许IF标志来进行虚拟化的虚拟8086
模式程序中的INT n软件中断指令
灰也是处于虚拟8086模式IOPL敏感
需要注意的是INT 3 INTO和绑定的说明
在虚拟8086模式不IOPL敏感
在IO指令直接引用地址
在处理器的I O空间是在INS OUT和
OUTS英特尔386 SX微处理器具有abil-
性有选择性地捕获引用特定AD- IO
打扮,使选择性trap-结构
平是
我O许可位图
在TSS段
换货(见图4 8 4 9) I O许可
地图是一个位向量地图和某些地区可能的大小
化的TSS段是可变的处理器
用的方式找到了我O许可地图
I O
地图基础
在TSS中的固定部分领域
我O映射基地
字段是16比特宽,并且包含
在I O许可地图的开始偏移
在保护模式下,当一个I O指令(IN INS
OUT或OUTS )第一次遇到处理器
检查是否CPL
s
IOPL如果这个条件为真
IO操作可以进行。如果不是这样的proc-
ESSOR检查I O权限映射(虚拟
8086模式下处理器的协商无地图
顾及IOPL )
37