【问题标题】:What if the processor does not have special instructions for input and output如果处理器没有输入和输出的特殊指令怎么办
【发布时间】:2022-01-22 08:54:40
【问题描述】:

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

【问题讨论】:

标签: assembly io cpu-architecture


【解决方案1】:

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

可能说在“min”模式下运行的 8088 CPU 的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 地址范围”。但原理是一样的。

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多