8085 微处理器中的跳过指令(JNC)
在 8085 指令集中,我们有一个助记符 **JNC a16**,它代表“如果非进位则跳跃”,而“a16”代表任何 16 位地址。此指令用于跳跃到指令中提供的 a16 地址。但由于它是条件跳转,因此只有当前进位标志值为 0 时才会发生。如果进位标志值为 1,程序流程将按顺序继续。它是一个 3 字节指令。
助记符,操作数 | 操作码(十六进制) | 字节 |
---|---|---|
JNCLabel | D2 | 3 |
让我们考虑此指令类型 **JNC 4000H** 的一个示例。它是一个 3 字节指令。此指令执行的结果如下所示,并附带一个示例。
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2000 | 37 | STC | 设置进位标志位。因此 Cy = 1 |
2001 | 3F | CMC | 反转进位标志位。因此 Cy = 0 |
2002 | D2 | JNC 4000 | 跳过非进位,即当 Cy = 0 时跳跃 |
2003 | 00 | 目标地址的低位字节 | |
2004 | 40 | 目标地址的高位字节 PC ← 4000H,因此程序控制将转移到地址 4000H | |
2005 | 78 | MOV A,B | 此指令现在不会获得控制权,因为 JNC 会将控制权转移到内存地址 4000H |
…. | …. | …. | …. |
4000 | 41 | MOV B, C | 地址 4000H 的下一条指令将获得控制权 |
针对此指令 **JNC 4000H** 执行的时序图如下所示:
**总结** - 因此,此指令 **JNC** 需要 3 个字节、3 个机器周期(操作码获取、内存读取、内存读取)和 10 个 T 状态才能执行,如时序图所示。
广告