8085微处理器中的IN a8指令
在8085指令集中,**IN**是一个助记符,代表将输入端口的内容输入到累加器中。输入端口的8位地址在指令中表示为**a8**。它在内存中占用2个字节。第一个字节指定操作码,下一个字节提供8位的输入端口地址。
助记符,操作数 | 操作码(十六进制) | 字节数 |
---|---|---|
输入端口地址 | DB | 2 |
IN F0H是这种类型的示例指令。该指令执行的结果如下例所示。
执行前 | 执行后 | |
---|---|---|
(A) | 任意值 | ABH |
输入端口F0H | ABH | ABH |
IN指令是唯一用于将输入端口内容读取到累加器的指令。连接地址为F0H的输入端口的可能的芯片选择电路如下所示。
输入端口F0H的芯片选择电路
这里,由于端口地址为F0H,因此A7到A0的位应该具有位模式
A7 A6 A5 A4 A3 A2 A1 A0 =1 1 1 1 0 0 0 0, with RD* = 0, and IO/M* = 1
所有这些位将通过一个与非门产生输出逻辑1作为芯片选择(CS),因此输入端口芯片被选中。因此,当8085发出地址F0H、IO/M*为1、RD*为0时,芯片做出响应。换句话说,我们认为它具有输入端口号F0H。
请注意,可以有一个地址为F0H的输出端口和一个地址为F0H的输入端口。当8085发出地址EFH和IO/M*为1时,只有一个根据RD*和WR*信号的状态值被选中。因此,可以总共有256个输入端口和256个输出端口。
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2000 | DB | IN F0H | 来自端口地址F0H的内容将被写回累加器 |
2001 | F0 | F0H作为端口地址 |
针对此指令**IN F0H**执行的时序图如下所示:
**总结** − 因此,此指令**OUT**需要2个字节、3个机器周期(操作码提取、内存读取、I/O读取)和10个T状态才能执行,如时序图所示。
广告