8085 微处理器中的奇偶校验为偶数时返回 (RPE)
在 8085 指令集中,RPE 是助记符,代表“奇偶校验为偶数时返回”。仅当 P 标志值为 1 时,此指令才用于返回主程序。如果 P 标志值为 0,程序流程将按顺序继续在子程序中执行。这是一个 1 字节指令。
助记符,操作数 | 操作码(十六进制) | 字节数 |
---|---|---|
RPE | E8 | 1 |
让我们考虑以下示例代码以便更好地解释:
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
2000 | 31 | LXI SP, 5000H | SP ← 5000H。初始化 SP |
2001 | 00 | 地址的低位字节 | |
2002 | 50 | 地址的高位字节 | |
2003 | 21 | LXI H, 4050H | HL ← 4050H,初始化 HL 寄存器对 |
2004 | 50 | 地址的低位字节 | |
2005 | 40 | 地址的高位字节 | |
2006 | CD | CALL 200BH | 调用地址为 200BH 的子程序。因此,程序的控制将转移到 200BH 位置。下一个指令的返回地址 2009H 将被压入堆栈顶部。结果,4FFFH (SP – 1) 将包含 20H,而 4FFEH (SP – 2) 将分别包含 09H。 |
2007 | 0B | 地址的低位字节 | |
2008 | 20 | 地址的高位字节 | |
2009 | 77 | MOV M, A | M ← A,累加器的內容将被传输到 HL 寄存器对指向的内存位置 4050H。因此,在 4050H 内存位置将存储累加器的內容 00H。成功执行 RPE 指令后,控制将返回到此指令。 |
200A | 76 | HLT | 程序结束。 |
200B | 3E | MVI A, 40H | A ← 40H,用初始值 40H 初始化累加器 |
200C | 40 | 40H 作为操作数 | |
200D | 06 | MVI B, 40H | B ← 40H,用初始值 30H 初始化寄存器 B |
200E | 40 | 40H 作为操作数 | |
200F | 90 | SUB B | A ← A – B = 40H – 40H = 00H,由于计算结果为零,因此 P = 1 |
2010 | E8 | RPE | 将控制返回到地址 2009H。返回地址 2009H 将从堆栈顶部弹出。因此,从地址 4FFEH 弹出 09H,从地址 4FFFH 弹出 20H,SP 将相应地恢复其初始地址 5000H 的内容。 |
2011 | 80 | ADD B | A ← A + B ← 00H + 40H = 40H。 (但在本例中,此行无法访问,因此不会执行) |
2012 | 77 | MOV M, A | M ← A,累加器的內容将被传输到 HL 寄存器对指向的内存位置 4050H。因此,在 4050H 内存位置将存储累加器的內容 40H。 (但在本例中,此行无法访问,因此不会执行) |
2013 | C9 | RET | 将控制返回到地址 2009H。返回地址 2009H 将从堆栈顶部弹出。因此,从地址 4FFEH 弹出 09H,从地址 4FFFH 弹出 20H,SP 将相应地恢复其初始地址 5000H 的内容。 (但在本例中,此行无法访问,因此不会执行) |
针对此指令 RPE 执行的时序图如下:
总结 − 因此,此指令 RPE 需要 1 字节、3 个机器周期(操作码提取、内存读取、内存读取)和 12 个 T 状态才能执行,如时序图所示。
广告