8085微处理器中的DCR R指令


在8085指令集中,DCR是一个助记符,代表“递减”(DeCRement),而“R”代表以下任何一个寄存器,或者由HL寄存器对指向的存储器位置M。

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

这条指令用于减少寄存器R的内容。我们也可以说它会从寄存器R的内容中减去1。并且递减后的值将存储到寄存器R本身。由于它是一条算术指令,因此除了Cy标志外,所有标志都会根据结果受到影响。在那些需要向下计数器的汇编语言代码中,我们可以使用这条指令。因此,根据设计,Cy标志不受这条指令执行的影响。

由于R可以具有八个寄存器值中的任何一个,因此此类指令共有八种操作码。它在内存中只占用1个字节。

助记符,操作数 操作码(十六进制) 字节数
DCR A 3D 1
DCR B 05 1
DCR C 0D 1
DCR D 15 1
DCR E 1D 1
DCR H 25 1
DCR L 2D 1
DCR M 35 1

让我们以**DCR M**作为此类指令的示例。它是一条1字节指令。假设HL寄存器对的初始内容为16位地址4050H。并且在存储器位置4050H处,内容为ABH。因此,执行此指令的结果已在以下跟踪表中进行了描述

之前 之后

(HL)

4050H 4050H

(4050H)

ABH AAH

(F)

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

地址 十六进制代码 助记符 注释
2005 35 DCR M (HL) = (HL) - 1

实际上,在内部,8085通过将01H的二进制补码添加到ABH来执行此递减操作。因此,如果4050H初始存储器位置的内容为00H,则在执行指令DCR M后,内容将变为FFH。

DCR M

**总结** - 因此,此指令**DCR M**需要1个字节、3个机器周期(操作码获取、内存读取、内存写入)和10个T状态才能执行,如时序图所示。

更新于: 2019年7月30日

6K+浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告