首页 理论教育《单片机基础及应用》操作数类型和指令描述约定

《单片机基础及应用》操作数类型和指令描述约定

【摘要】:1.操作数类型在众多指令中,大多数指令执行时都需要使用操作数,因此就存在怎样寻找操作数的问题。单片机指令系统中的操作数的类型有立即数、寄存器操作数和存储器操作数3种。通常在指令中给出寄存器的名称。存储器操作数存储器操作数是把操作数存放在存储器中,因此在汇编指令中给出的是存储器的地址。2.指令描述约定为便于学习寻址方式和指令,在此先对指令中使用到的一些符号的约定予以说明。用于SJMP和所有条件转移指令。

1.操作数类型

在众多指令中,大多数指令执行时都需要使用操作数,因此就存在怎样寻找操作数的问题。所谓寻址,实质上就是如何确定操作数的单元地址。根据指定方法的不同,有不同的寻址方式。在讲解寻址方式前,必须了解操作数有哪些类型。单片机指令系统中的操作数的类型有立即数、寄存器操作数和存储器操作数3种。

(1)立即数

立即数作为指令代码的一部分出现在指令中,它通常作为源操作数使用。

在汇编指令中立即数可用二进制十六进制十进制等数制形式表示,也可以写出一个可求解的表达式来表示。

(2)寄存器操作数

寄存器操作数是把操作数存放在寄存器中,即用寄存器存放源操作数或目的操作数。

通常在指令中给出寄存器的名称。在双操作数指令中,寄存器操作数可以作为源操作数,也可以作为目的操作数。

(3)存储器操作数

存储器操作数是把操作数存放在存储器中,因此在汇编指令中给出的是存储器的地址。由于地址给出的方式有多种,所有涉及的存储器操作数寻址方式最为复杂。

2.指令描述约定

为便于学习寻址方式和指令,在此先对指令中使用到的一些符号的约定予以说明。

Rn:当前选定的工作寄存器区R7~R0(n=7~0)。

direct:8位片内数据存储单元地址。它可以是一个内部数据RAM单元(0~127)(00H~7FH)或一个专用寄存器地址(SFR)[即I/O端口、控制寄存器、状态寄存器等(128~255)(80H~0FFH)]。

@Ri:通过寄存器R1或R0间接寻址的8位片内数据RAM单元(0~255),i=0,1。

#data:指令中8位立即数。(www.chuimin.cn)

#data16:指令中16位立即数。

addr16:16位目标地址。用于LCALL和LJMP指令,可指向64K字节程序存储器地址空间的任何地方。

addr11:11位目标地址。用于ACALL和AJMP指令,转向至下一条指令第一字节所在的同一个2K字节程序存储器地址空间内。

rel:带符号的8位偏移量字节(二进制补码)。用于SJMP和所有条件转移指令。偏移字节相对于下一条指令第一字节计算,在-128~+127范围内取值。

bit:内部数据RAM或部分专用寄存器可位寻址的位地址。

DPTR:数据指针,可用作16位的地址寄存器。

A:累加器

B:专用寄存器,用于乘、除指令中。

C:进位标志或进位位。

bit:表示对该位进行取反操作。

(×):某寄存器或某单元的内容。

((×)):由×间接寻址的单元中的内容。

:当前指令存放的地址。

←:箭头左边的内容被箭头右边的内容所取代。

↔:箭头两边的内容相互交换。