如果处理器没有输入输出的特殊指令怎么办

What if the processor does not have special instructions for input and output

我是装配新手。这让我很困扰:如果处理器没有输入输出的特殊指令怎么办?

x86 的 inout 指令或多或少是 mov 指令的特例:

可能说8088CPU运行的M//IO引脚在“最小”模式下实际上是引脚/A20。在这种情况下,指令 mov al, [si] 用于从地址范围 0-0FFFFFh 中读取一个字节,而 in al, dx 用于从地址范围 100000h-10FFFFh 中读取一个字节。

mov [si], alout dx, al也是如此。

因此8088可以访问地址范围0-10FFFFh。而一个 80386 可以访问和寻址范围 0-10000FFFFh.

然而,实际上,您不会谈论“地址范围 100000h-10FFFFh”,而是谈论“I/O 地址范围”。但是原理是一样的。

CPU没有inout指令(ARM、PowerPC、MIPS、TriCore、V850、m68k、680x、6502 ...)只有一个地址范围。

连接到这样一个 CPU 的所有设备(键盘、UART、鼠标...)在这个地址范围内都有一个地址。

对于这种情况,使用等于 x86 指令 mov al, [si] 的指令而不是 in al, dx 指令(此类 CPU 上不存在)来访问这些设备。