Intel 8086微处理器M//IO信号生成机制及特性相关技术问询
Intel 8086 M/IO信号相关问题解答
1. M/IO信号的产生机制
Intel 8086的M/IO(内存/输入输出)控制信号由CPU内部的总线接口单元(BIU)硬件自动生成,不由代码直接产生,电平状态完全由当前执行的指令类型决定。
2. 与普通地址信号的核心差异
首先明确该信号不存在代码直接生成的情况,它和地址信号的差异如下:
- 普通地址信号(A0~A19)的输出值由代码中指定的操作数地址、跳转目标等参数直接决定,程序员可以通过修改代码中的地址参数直接控制这些信号的取值。
M/IO属于总线控制信号,电平完全由BIU根据当前执行的指令类型自动推导,程序员无法通过代码直接指定该信号的电平,只能通过选择不同类型的指令间接改变它的输出状态。
3. 内存地址与端口地址的判断逻辑
8086采用独立编址方案,内存地址空间和I/O端口地址空间相互独立,CPU通过当前执行的指令类型区分两个地址空间:
- 当执行内存访问类指令时:包括读写内存的
MOV指令、栈操作PUSH/POP指令、跳转JMP/CALL等涉及取指、内存数据读写的指令,BIU会自动将M/IO信号置为高电平,此时地址总线上输出的是20位内存物理地址,外部电路按照内存访问规则响应。 - 当执行专用I/O指令时:即
IN(读端口)、OUT(写端口)指令,BIU会自动将M/IO信号置为低电平,此时地址总线低16位输出的是16位I/O端口地址,外部电路按照I/O端口访问规则响应。
内容的提问来源于stack exchange,提问作者pauk
相关产品推荐
相关产品推荐

