8085微处理器SUB R指令类型


在8085指令中,SUB是助记符,代表“从累加器中减去R的内容”。这里R代表以下任何寄存器,或HL对指向的内存位置M。

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

助记符,操作数 操作码(十六进制) 字节数
SUB A 97 1
SUB B 90 1
SUB C 91 1
SUB D 92 1
SUB E 93 1
SUB H 94 1
SUB L 95 1
SUB M 96 1

在此指令中,寄存器R的内容将从累加器中减去,所得差值将存储在累加器中,替换累加器先前的內容。R可以是八个值中的任何一个,因此此类指令共有八个操作码,如上表所示。它只占用内存中的1个字节。

让我们以SUB E为例。由于它是一字节指令,因此它将占用内存中的单个字节空间。该指令执行的结果如下例所示。

示例1

假设累加器和E寄存器的初始值分别为ABH和CDH。因此,执行指令SUB E后,寄存器的内容将为:

执行前 执行后

(A)

ABH DEH

(E)

CDH CDH

(F)

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

地址 十六进制代码 助记符 注释
2004 93 SUB E 累加器 = 累加器 + E的二进制补码

这里Cy=1表示结果为负。实际上A – E = A + E的二进制补码。以下是计算过程。

(A)	ABH (1010 1011) ---------------> 1010 1011
                           2'S Complement
(E)  CDH (1100 1101) --------------->      0011 0011
                                       ---------------
                                       1101 1110 (DEH)

以下是指令SUB E的时序图

SUB E

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

示例2

假设累加器和E寄存器的初始值分别为CDH和ABH。因此,执行指令SUB E后,寄存器的内容将为:

执行前 执行后

(A)

CDH 22H

(E)

ABH ABH

(F)

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

地址 十六进制代码 助记符 注释
2004 93 SUB E 累加器 = 累加器 + E的二进制补码

这里Cy=0表示结果为正。实际上A – E = A + E的二进制补码。以下是计算过程。

(A)	CDH (1100 1101) ---------------> 1100 1101
                         2'S Complement
(E) ABH (1010 1011) --------------->    0101 0101
                                       ----------------
                                       0010 0010 (22H)

以下是指令SUB E的时序图

SUB E

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

更新于:2019年7月30日

4K+浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告