8085 微处理器中的跳转小于零 (JM) 指令
在 8085 指令集中,我们有一个助记符 **JM a16**,它代表“跳转小于零”,其中“a16”代表任何 16 位地址。此指令用于跳转到指令中提供的 a16 地址。但由于它是一个条件跳转,因此只有在当前符号标志值为 1 时才会发生。如果符号标志值为 0,则程序流程将依次继续。它是一个 3 字节指令。
| 助记符,操作数 | 操作码(十六进制) | 字节数 |
|---|---|---|
| JM 标签 | FA | 3 |
让我们考虑此指令类型 **JM 4000H** 的一个示例。它是一个 3 字节指令。下面用一个示例显示了执行此指令的结果。
| 地址 | 十六进制代码 | 助记符 | 注释 |
|---|---|---|---|
| 2000 | 3E | MVI A,30 | A ← 30H |
| 2001 | 30 | 8 位操作数 30H | |
| 2002 | 06 | MVI B,40 | B ← 40H |
| 2003 | 40 | 8 位操作数 40H | |
| 2004 | 90 | SUB B | A ← A – B= 30H – 40H = -10H = F0H。由于结果为 -10H 且结果为负数,因此 S 标志位将为 1 |
| 2005 | FA | JM 4000 | 跳转小于零,即当 S = 1 时跳转,由于减法结果为 -10H,因此 S 标志位将保持值为 1 |
| 2006 | 00 | 目标地址的低位字节 | |
| 2007 | 40 | 目标地址的高位字节 PC ← 4000H,因此程序控制将转移到地址 4000H | |
| 2008 | 78 | MOV A, B | 此指令现在将不会获得控制权,因为 JP 将控制权转移到内存地址 4000H |
| …. | …. | …. | …. |
| 4000 | 41 | MOV B, C | 地址 4000H 处的下一条指令将获得控制权 |
针对此指令 **JM 4000H** 执行的时序图如下所示:

**总结** - 因此,此指令 **JM** 需要 3 个字节、3 个机器周期(操作码获取、内存读取、内存读取)和 10 个 T 状态才能执行,如时序图所示。
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP