`
chong_zh
  • 浏览: 71973 次
  • 来自: 杭州
社区版块
存档分类
最新评论

Intel80386知识总结: I/O系统

 
阅读更多
====================================================================
本文用于汇总整理Intel80386的I/O系统相关知识,
参考文献:
  • 《INTEL 80386 programmer's reference manual 1986》

本文是系列文章《Intel80386知识总结》的一部分。
===================================================================

1. I/O寻址模式
i386支持两种I/O寻址模式:
  • 使用单独的I/O地址空间,单独的I/O指令
  • 使用I/O内存映射,使用通用操作数操作指令


1.1 使用单独的I/O地址空间
单独的I/O地址空间被称为I/O端口,共计64K个8位端口,可以合并为32K个16位端口或16K个32位端口使用。这些端口可以供最多16个外部设备使用。访问I/O端口的方式有两种:
  • 使用DX(16位)中的值:8-bit ports numbered 0 through 65535;16-bit ports numbered 0, 2, 4, . . . , 65532, 65534;32-bit ports numbered 0, 4, 8, . . . , 65528, 65532
  • 使用1byte常量:256 8-bit ports numbered 0 through 255;128 16-bit ports numbered 0, 2, 4, . . . , 252, 254;64 32-bit ports numbered 0, 4, 8, . . . , 248, 252.

i386可以一次性向指定的I/O端口发送32位/16位/8位的数据,要求32位数据对齐4的倍数地址,16位数据对齐2的倍数地址,8位数据可以放在任意地址。

1.2 使用I/O内存地址映射
I/O设备也可以直接放在内存地址空间中,如下图所示:


2. I/O保护机制
在实模式中没有任何I/O保护机制,所有任务都可以执行I/O指令,I/O指令可以访问任意I/O端口。在保护模式下,提供两个I/O保护机制:
  • EFLAGS寄存器中的IO Privilege Level(IOPL)字段
  • TSS中的I/O Permission Bit Map

2.1 EFLAGS寄存器中的IOPL字段
IOPL长度2位,只有当CPL不大于IOPL时,下列指令才能访问I/O(这些指令被称为I/O敏感指令):
  • IN ── Input
  • INS ── Input String
  • OUT ── Output
  • OUTS ── Output String
  • CLI ── Clear Interrupt-Enable Flag
  • STI ── Set Interrupt-Enable


2.2 TSS中的I/O Permission Bit Map
I/O Permission Bit Map由TSS中的I/O map base字段确定,I/O map base字段长度16位,给出I/O Permission Bit Map在TSS段内偏移。如下图所示:

I/O Permission Bit Map在IOPL检查失败的情况下使用,例如要访问I/O端口41,如果IOPL检查失败,则查看I/O map base+5 bit offset 1处的比特位是否为1,若为1,则可以访问,否则不可访问产生异常。I/O Permission Bit Map不必包括所有的I/O端口权限信息,例如,TSS LINIT = I/O map base+31,则只有前256个I/O端口在I/O Permission Bit Map中有显示权限定义,大于255的I/O端口都隐式的被声明为0。如果I/O map base大于等于TSS的LIMIT,则当前任务TSS没有I/O Permission Bit Map。


0
1
分享到:
评论

相关推荐

    单片机I/O与PROTEL99封装

    根据给定的文件标题“单片机I/O与PROTEL99封装”及其描述和部分内容,我们可以总结出以下几个重要的知识点: ### 单片机I/O口特性及应用 #### 1. 单片机的选择与表示 - **选择**:在原理图中,可以选择使用8031、...

    IT8718F I/O Datasheet

    ### IT8718F I/O 芯片知识点解析 #### 一、概述 IT8718F是一款先进的主板I/O芯片,其特点在于提供了丰富的输入/输出功能,并且具备良好的环境控制能力。这款芯片是针对低引脚数量(LPCI)的设计需求而开发的,特别...

    性能卓越的I/O串口通信解决方案-C218T.pdf

    根据提供的文件信息,我们可以总结出以下有关性能卓越的I/O串口通信解决方案-C218T的知识点: 1. MOXA公司介绍:MOXA是一家专注于工业通讯解决方案的制造商。在工业自动化领域,MOXA提供广泛的产品系列,包括嵌入式...

    51单片机实现交通信号灯

    交通信号灯控制是51单片机学习中的经典案例,它能帮助初学者理解单片机的中断系统、定时器/计数器、I/O口控制等基本功能。在这个项目中,我们需要编写程序来模拟真实世界中的红绿黄交通信号灯变换逻辑,这通常涉及到...

    MAX 10FPGA通用IO

    总结来说,MAX 10 FPGA通用I/O系统的知识点涵盖了从基础的I/O标准支持到复杂的I/O设计和实现的多个方面,为FPGA开发人员提供了详细的设计参考。掌握这些知识点有助于设计者更有效地利用MAX 10 FPGA的功能,实现可靠...

    MCS-51单片机资料

    7. **32条可编程I/O线**: 四个8位的并行I/O端口,可用于连接外部设备。 8. **可编程全双工串行口**: 实现串行通信功能。 9. **中断控制系统**: 支持五种中断源和两级中断优先级。 #### 三、MCS-51单片机CPU详解 1....

    基于51单片机的智能光控路灯

    总结来说,基于51单片机的智能光控路灯项目涵盖了嵌入式系统设计的基础知识,包括单片机编程、传感器接口设计、中断机制、控制逻辑等。通过这个项目,学习者可以提升硬件接口设计能力,增强软件编程技巧,并了解如何...

    第1讲认识89S52单片机 - 第1章89S52单片机概述.doc

    【知识点详解】 1. 单片机基础知识: - 单片机,也称为单片微型计算机或微控制器,是将CPU、RAM、ROM、...在实际应用中,需要根据需求合理利用其各种功能,例如I/O口的复用能力、内存管理、中断系统以及省电模式等。

    HPserver全图

    该系列服务器主要采用Intel Itanium 处理器,支持多种操作系统,包括HP-UX、Linux以及OpenVMS等,适用于复杂的企业级应用环境。 #### 二、HP Integrity 服务器型号及其配置详情 ##### (1) 单机箱服务器 - **rx1600...

    UC-8410系列

    - **数字I/O接口**:包括4个数字输入通道与4个数字输出通道,适用于监控和控制外部设备的状态。 - **其他接口**: - CF卡插槽:支持CF卡存储扩展,进一步增加存储容量。 - 2个USB 2.0主机接口:方便连接外部存储...

    可编程中断控制器

    例如,英特尔的82093AA I/O APIC芯片支持24个中断输入,每个输入都有一个64位的中断重定向表项。这使得它可以非常灵活地管理中断,并且能够根据系统的实际需求进行动态调整。 #### 四、总结 高级可编程中断控制器...

    Cyclone FPGA Series Package & I/O Matrix

    本文将详细介绍 Cyclone 系列 FPGA 的封装技术、引脚配置以及 I/O 资源等相关知识点。 #### 二、封装技术与统计数据 ##### 封装类型 - **TQFP (Thin Quad Flat Pack)**:薄型四方扁平封装。 - **PQFP (Plastic ...

    南开大学《计算机组成原理》期末复习资料(答案在后面).pdf

    计算机组成原理是计算机科学中的一门重要课程,本文将对南开大学《计算机组成原理》期末复习资料的知识点进行总结和解释。 1. 计算机分类 计算机可以分类为巨型机、中型机、小型机、微型机等。个人台式商用机属于...

    欧姆龙NJ手册系列

    - **I/O容量**:最高支持2,560点I/O输入输出,并且可以扩展至40个构成单元。 - **内存容量**:程序容量最大20MB,变量存储器容量为2MB(断电保持)和4MB(非断电保持)。 - **运动轴数**:最多支持16轴的精密运动...

    基于51单片机的交通灯设计

    总结来说,基于51单片机的交通灯设计涵盖了单片机原理、硬件接口、定时器编程、中断处理、数码管显示、逻辑控制等多个方面的知识,是一项综合性的学习项目。通过这样的实践,可以提升对嵌入式系统和微控制器的理解和...

    Intel 80386 程序员手册 中文 1、2、4、5、6、7、8、9、10、14章

    根据提供的信息,我们可以深入探讨《Intel 80386 程序员手册》中的几个关键章节,这些章节对于理解和使用...以上内容涵盖了Intel 80386程序员手册中的核心知识点,这些知识对于理解和开发基于80386的系统至关重要。

    51单片机C语言编程手册

    - **32个I/O口**: 分为四组8位端口,可用于输入输出操作。 - **两个16位定时/计数器**: 用于实现精确的时间测量和控制。 - **全双工串行通信**: 支持同时发送和接收数据。 - **六个中断源**: 包括两个中断优先级...

    不怕掉电的电子钟程序

    - **IO/M**:I/O/RAM选择线。 - **PA0~PA7、PB0~PB7、PC0~PC5**:分别对应端口A、B、C的引脚。 - **TIMER IN**:计数器/定时器输入端。 - **TIMER OUT**:定时器输出端。 - **命令字**:通过写入命令寄存器的...

    在多电压系统中使用Cyclone器件

    ### 在多电压系统中使用Cyclone器件的关键知识点 #### 一、Cyclone器件概述与应用场景 **Cyclone器件**是由Altera公司(现已被Intel收购)生产的一系列低成本、高性能的现场可编程门阵列(FPGA)。它们被广泛应用于...

    单片机最小系统组成与I/O输出控制

    在51系列单片机中,最小系统通常需要一个单片机芯片,如Intel 8051或兼容型号,一个时钟源(如石英晶振)及其配套电容,一个复位电路以确保程序的正确启动,以及至少一个I/O口用于与外部设备交互。 1. **时钟电路**...

Global site tag (gtag.js) - Google Analytics