8085 微处理器中的 CMP R 指令


在 8085 指令集中,CMP 是一个助记符,代表“比较累加器”,而这里的 R 代表以下任何一个寄存器,或者由 HL 寄存器对指向的内存位置 M。

R = A, B, C, D, E, H, L, or M

此指令用于比较累加器的内容与给定寄存器 R 的内容。比较操作的结果将存储在 Temp 寄存器中。Temp 不是 GPR(通用寄存器),而是一个程序员无法访问的内部寄存器。实际上,R 寄存器的内容将从累加器的内容中减去,差值将存储在 Temp 寄存器中。由于 R 可以具有八个值中的任何一个,因此此类指令有八个操作码。它在内存中只占用 1 个字节。

助记符,操作数 操作码(十六进制) 字节
CMP A BF 1
CMP B B8 1
CMP C B9 1
CMP D BA 1
CMP E BB 1
CMP H BC 1
CMP L BD 1
CMP M BD 1

让我们考虑一个属于此类别的示例指令 CMP E。由于它是一个 1 字节指令,因此在执行此指令期间,它在内存中只占用一个字节。此指令执行的结果已用以下示例集进行了描述:

示例 1

之前 之后

(A)

50H 50H

(E)

70H 70H

(Temp)

任意值 E0H

(F)

任意值 Cy=1,AC=0,S=1,P=0,Z=0

示例 2

之前 之后

(A)

70H 70H

(E)

50H 50H

(Temp)

任意值 20H

(F)

任意值 Cy=0,AC=0,S=0,P=0,Z=0

示例 3

之前 之后

(A)

50H 50H

(E)

50H 50H

(Temp)

任意值 00H

(F)

任意值 Cy=0,AC=0,S=0,P=1,Z=1

地址 十六进制代码 助记符 注释
2004 BB CMP E Temp = 寄存器 A - 寄存器 E

针对此指令 CMP E 执行的时序图如下:

CMP E

总结 - 因此,此指令 CMP E 需要 1 个字节、1 个机器周期(操作码获取)和 4 个 T 状态才能执行,如时序图所示。

更新于: 2019-07-30

9K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.