8085微处理器程序员视角
Intel 8085从内存或位于微处理器内部的输入端口接收AD7-0上的8位信息,这些信息通过“寄存器”存储。寄存器是一组触发器,每个触发器可以存储一位信息。为了存储8位信息,8085中寄存器的尺寸必须为8位。
与内存位置相比,寄存器的优势在于微处理器可以更快地访问寄存器的内容,而内存位置的内容访问速度则相对较慢。
然而,与内存位置相比,寄存器也存在以下缺点。
如果寄存器过多,它们会占用芯片上的大量空间,从而减少控制单元和算术逻辑单元的可用空间。
在涉及寄存器操作数的指令中,可用于指定操作的位数会减少,从而减少可能的指令数量。
例如,让我们考虑以下程序段示例 -
在8085指令集中,有四条指令属于LXI rp, d16类型。这些指令用于将16位地址加载到寄存器对中。我们可以使用此指令使用存储在寄存器对rp中的内存地址从内存位置加载数据。例如,如果指令是LXI H, FE50。这意味着FE50加载到HL寄存器对中。
rp可以是BC、DE、HL或SP。
LXI指令及其十六进制代码如下所示。
助记符,操作数 | 操作码(十六进制) | 字节 |
---|---|---|
LXI B | 01 | 3 |
LXI D | 11 | 3 |
LXI H | 21 | 3 |
LXI SP | 31 | 3 |
示例
在此示例中,我们可以看到LXI指令如何将16位数据加载到寄存器对中。
将56FE加载到DE寄存器对中,将ABCD加载到HL寄存器对中,交换DE和HL的内容。并将DE寄存器对的内容存储到8050和8051H位置。
地址 | 十六进制代码 | 助记符 | 注释 |
---|---|---|---|
8000 | 11 FE 56 | LXI D, 56FEH | 将56FEH存储到DE寄存器对中。 |
8003 | 21 CD AB | LXI H, ABCDH | 将ABCDH存储到HL寄存器对中。 |
8006 | EB | XCHG | 交换DE和HL的内容 |
8007 | 21 50 80 | LXI H, 8050H | 将8050H加载到HL对中以存储结果。 |
800A | 72 | MOVM, D | 将寄存器D的内容存储到内存位置。 |
800B | 23 | INX H | 将HL指向下一个源位置 |
800C | 73 | MOV M, E | 将寄存器E的内容存储到内存位置。 |
800D | 76 | HLT | 停止 |
输出
地址 | 值 |
---|---|
8050H | AB |
8051H | CD |
以下是指令LXI D, 56FEH的时间图
总结 - 因此,此指令LXI D, 56FEH需要3个字节、3个机器周期(操作码获取、内存读取、内存读取)和10个T状态才能执行,如时间图所示。
广告