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状态才能执行,如时序图所示。

更新于:2020年6月27日

3K+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告