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需要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需要1个字节、1个机器周期(操作码获取)和4个T状态才能执行,如时序图所示。
广告