前言:学习X86指令体系下的输入/输出指令
输入/输出指令是控制CPU与外设交换数据的指令
1、端口
PC通过总线与CPU相连的芯片除了存储器外,还有其他的一些芯片可存放信息。这些芯片都有一组可以由CPU读/写的寄存器,这些寄存器叫做端口
这些寄存器在物理上处于不同的芯片中,但它们都是与CPU总线相连,每个端口在地址空间中都有一个地址。CPU通过对I/O接口中端口的读/写实现与外部设备的数据交换
2、输入/输出指令IN和OUT
IN:数据由端口 ➡ CPU
OUT:数据由CPU ➡ 端口
在IN/OUT指令中,只能用AX或AL寄存器来存放从端口读入的数据或者要发送到端口的数据
输入指令格式:
1 | IN AL,n |
其中n为8位的端口地址,当输入字节数据时,将端口地址为n的内容给AL中。当输入字数据时,将端口地址n + 1的内容送给AH中,端口地址为n的内容送AL中
端口地址为16位时应当16位端口地址送入DX寄存器中。当输入字节数据时,将DX作为端口地址中的内容送给AL。当输入字数据时,将DX作为端口地址中的内容送给AL。当输入字数据时,将DX作为端口地址中的内容送AL,[(DX + 1)]的端口地址内容送AH
输出指令格式:
1 | OUT n,AL |
输入/输出指令不影响标志位