📜  Memory Mapped IO和IO Mapped IO参考8085微处理器的区别(1)

📅  最后修改于: 2023-12-03 14:44:15.414000             🧑  作者: Mango

Memory Mapped IO和IO Mapped IO参考8085微处理器的区别

简介

8085微处理器是一款8位微处理器,有一个16位地址总线和一个8位数据总线。在操作外部设备时需要使用 Memory Mapped IO或者IO Mapped IO。

Memory Mapped IO

使用 Memory Mapped IO 时,外部设备是将地址空间中的一部分映射为I/O端口空间,程序可以直接读写这些I/O端口,就像读写存储器一样。这里的I/O端口实际上是一些特殊的地址,用于访问外部设备。

内存映射I/O的例子:

MOV A, M ; 从内存中读出数据到累加器
OUT PORT ; 将累加器的内容输出到I/O端口

在此例中,PORT是一个特殊的地址,代表一个外部设备的端口地址。

IO Mapped IO

使用 IO Mapped IO 时,外部设备不是映射在地址空间中,而是连接到一个独立的总线上,这个总线只能访问I/O设备,称为I/O总线。CPU通过特殊的指令与外设通信。

IO Mapped IO的例子:

IN PORT ; 从I/O端口读取数据到累加器
MOV M, A ; 将累加器的内容写入内存中

在此例中,PORT是外部设备的地址,IN/OUT是特殊的指令。

区别

Memory Mapped IO和IO Mapped IO的区别在于,Memory Mapped IO是将外围设备映射到地址空间中,而IO Mapped IO是使用独立的I/O总线和专用指令访问设备。

Memory Mapped IO的优点在于,由于程序可以直接对设备进行读写,因此程序编写起来非常简单。但是,由于设备处于地址空间中,所以在内存和外设之间读写数据的速度较慢。

IO Mapped IO的优点在于,由于设备连接在独立的总线上,如果程序只需要读写内存,那么程序中不需要加入任何与外设有关的指令。因此,可以加快程序的执行速度。但是,程序必须使用特殊的指令与设备进行通信,这使得程序编写起来更加复杂。

结论

选择 Memory Mapped IO 还是 IO Mapped IO 取决于具体情况。如果程序需要频繁地读写外设并且外设的速度较慢,则可以选择 Memory Mapped IO。如果程序只需要读写内存,而外设的速度比较快,则可以选择 IO Mapped IO。