I/O 映射 I/O 的缺点和内存映射 I/O 的优点
在讨论 I/O 映射 I/O 的缺点和内存映射 I/O 的优点之前,让我们先对 I/O 映射 I/O 和内存映射 I/O 之间的区别进行一般性的讨论。
在内存映射输入输出中 -
我们将一个内存地址分配给一个输入输出设备。
此输入输出设备可以访问与内存相关的任何指令。
输入输出设备数据也提供给算术逻辑单元。
输入输出映射输入输出 -
我们为一个输入输出设备提供一个输入输出地址
此类设备仅访问 IN 和 OUT 指令。
ALU 操作不直接适用于此类输入输出数据。
因此,作为总结,我们可以提到 -
I/O 是处理器/控制器用于处理连接到它的外设的任何通用端口。
I/O 映射 I/O 具有与内存不同的地址空间。因此,总寻址容量是连接的 I/O 数量和连接的内存。使用单独的 I/O 相关指令来访问 I/O。单独的信号用于寻址 I/O 设备。
内存映射 I/O 与外部内存共享内存空间。因此,总寻址容量仅为连接的内存。如果您的处理器支持 I/O 映射 I/O,则这是资源的利用不足。在这种情况下,用于访问 I/O 的指令与用于内存的指令相同。
让我们以 8085 处理器为例。它有 16 条地址线,即 64 KB 内存的寻址容量。它支持 I/O 映射 I/O。它最多可以寻址 256 个 I/O。
如果我们将 I/O 连接到 I/O 映射 I/O,那么它可以寻址 256 个 I/O + 64 KB 内存。并使用特殊的 IN 和 OUT 指令访问外设。在这里,我们充分利用了处理器的寻址能力。
如果外设以内存映射方式连接,则它可以寻址的总设备数仅为 64K。这是资源的利用不足。并且仅使用 MVI、MOV、LOAD、SAVE 等内存访问指令来访问 I/O 设备。
现在我们将讨论 I/O 映射 I/O 的缺点和内存映射 I/O 的优点 -
我们仅使用 IN 和 OUT 指令来寻址输入输出映射输入输出端口。但是,我们使用大量指令来与内存映射输入输出端口进行通信过程。我们用于访问内存位置的所有指令都用于访问内存映射输入输出端口。
| LXI H, FFF0H | HL 对加载 FFF0H |
|---|---|
| MOV C, M ; | C 寄存器加载输入端口 FFF0H 的内容 |
| INR M ; | 将输入端口 FFF0H 的内容加 1 |
| ANA M ; | 执行累加器和输入端口 FFF0H 的 AND 操作 |
| ADD M ; | 将累加器内容和输入端口 FFF0H 相加 |
设计微处理器的设计人员需要以最少的引脚数量来设计独特的芯片。出于这个原因,我们发现从 AD7-AD0 开始的多路复用地址和数据引脚。
通过使用输入输出映射输入输出,只有累加器与输入输出端口通信。但是,我们使用内存映射输入输出,任何寄存器都与输入输出端口通信。可以引用为“MOV C, M”的示例可用于将 C 寄存器加载到内存映射 I/O 端口的内容,其地址在 HL 对中提供。

我们使用输入输出映射输入输出,以便在 8085 系统中仅寻址 256 个输入端口和 256 个输出端口,因为输入输出端口的长度为 8 位宽。
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP