购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.1 STC单片机CPU寻址模式

一条机器指令包含两部分,即操作码和操作数。操作码的目的是对被操作对象进行处理。典型地,对被操作对象实现逻辑与或非运算、加减乘除运算等。在机器/汇编语言指令中,将操作对象称为操作数。

在STC 8051单片机中,这些被操作的对象(操作数)可以保存在CPU的内部寄存器、片内Flash程序存储器、片内RAM、片内扩展RAM或者片外存储器中,也可能仅是一个常数(它作为指令的一部分存在)。

因此,就需要预先确定一些规则,一方面使得操作数可以保存在这些区域内;另一方面,CPU可以找到它们。在STC 8051单片机中,将CPU寻找操作对象(操作数)所保存位置的方式称为寻址模式。

在STC 8051单片机中,操作对象包括立即数、直接位地址、程序地址、直接地址、间接地址、特殊的汇编器符号。这些操作对象和寻址模式相关。

需要说明的是,特殊汇编器符号用来表示8051 CPU的内部功能寄存器,不可以修改这些符号。在8051单片机常用的寄存器符号有:

(1)A表示8051的累加器ACC。

(2)DPTR表示16位的数据指针,指向外部数据空间或者代码存储空间。

(3)PC表示16位的程序计数器,指向下一条将要执行指令的地址。

(4)C表示进位标志CY。

(5)AB表示A和B寄存器对,用于乘和除操作。

(6)R0~R7表示当前所使用寄存器组内的8个8位通用寄存器。

(7)SP表示堆栈指针。

(8)DPS表示数据指针选择寄存器。

STC15系列单片机采用的是8051 CPU内核,所以其寻址模式和传统的8051单片机是一样的。

6.1.1 立即数寻址模式

一些指令直接加载常数的值,而不是地址。例如指令:

     MOV A,#3AH

功能:将8位的十六进制立即数3A送给累加器A,如图6.1所示。

图6.1 立即数寻址模式

6.1.2 直接寻址模式

操作数由一个直接8位地址域指定。当使用这种模式时,只能访问片内RAM和特殊功能寄存器SFR。例如指令:

     MOV A,3AH

功能:将片内RAM中地址为3AH单元内的数据送给累加器A,如图6.2所示。

图6.2 直接寻址模式

注意: 和MOV A,#3AH指令的区别。如果操作数前带“#”符号,则操作数表示的是一个立即数,是立即数寻址方式。而操作数前面不带“#”符号,则操作数表示的是存储器的地址,3A是存储器的地址,表示把存储器地址为3A单元的内容送到累加器A中。

6.1.3 间接寻址模式

由指令指定一个寄存器,该寄存器包含操作数的地址。寄存器R0和R1用来指定8位地址,数据指针寄存器(DPTR)用来指定16位的地址。例如指令:

     ANL A,@R1

假设累加器A的内容为31H,R1寄存器的内容为60H,即(R1)=60H,则以60H作为存储器的地址,将60H地址单元的内容与累加器A中的数31H进行逻辑与运算,运算结果存放在累加器A中,如图6.3所示。

图6.3 间接寻址模式

6.1.4 寄存器寻址模式

某些特定指令用来访问寄存器组中的R0~R7寄存器、累加器A、通用寄存器B、地址寄存器和进位CY。由于这些指令不需要地址域,因此这些指令访问效率更高。例如指令:

     INC R0

功能:将寄存器R0的内容加1,再送回R0,如图6.4所示(假设当前寄存器R0中的数为50H)。

图6.4 寄存器寻址模式

6.1.5 相对寻址模式

相对寻址时将程序计数器(PC)中的当前值与指令中第二字节给出的数相加,其结果作为转移指令的目的转移地址。PC中的当前值为基地址,指令第二字节给出的数作为偏移量。由于目的地址是相对于PC中的基地址而言,所以这种寻址方式称为相对寻址。偏移量为带符号的数,范围为-128~+127。这种寻址方式主要用于跳转指令。例如指令:

     JC 80H

注意: 该指令为两字节,操作码JC占用一字节,80H占用另一字节。

功能:当进位标志为1时,则进行跳转,如图6.5所示。

图6.5 相对寻址模式

6.1.6 变址寻址模式

变址寻址模式使用数据指针作为基地址,累加器值作为偏移地址来读取程序Flash存储器。例如指令:

     MOVC A,@A+DPTR

功能:将DPTR和A的内容相加所得到的值作为程序存储器的地址,并将该地址单元的内容送A,如图6.6所示。

图6.6 变址寻址模式

6.1.7 位寻址模式

位寻址是对一些内部数据存储器RAM和特殊功能寄存器SFR进行位操作时的寻址模式。在进行位操作时,指令操作数直接给出该位的地址,然后根据操作码的类型对该位进行操作。在这种模式下,操作数是256比特中的某一位。例如指令:

     MOV C,2BH

功能:把位寻址区位地址为2BH的位状态送进位标志C,如图6.7所示。

图6.7 位寻址模式

思考与练习6-1: 在STC 8051单片机中,共有 种寻址模式。

思考与练习6-2: 请说明在STC 8051单片机中,操作数可以存放的位置。

思考与练习6-3: 在STC 8051单片机中,寻址模式是指

思考与练习6-4: 参考STC寻址模式和STC单片机CPU指令集,说明下面指令的寻址模式:

(1)MOV DPTR,#1234H,寻址模式

(2)MUL AB,寻址模式

(3)SETB C,寻址模式

(4)MOV A,12H,寻址模式

(5)MOVC A,@A+PC,寻址模式

(6)LJMP 100H,寻址模式

(7)MOV A,@R1,寻址模式 VRXSWOQb7jsIXe++o7x2PFTus4q/Yx5g9gUSyaOe00F4TLor9sUsK9vkrxeYV7+p

点击中间区域
呼出菜单
上一章
目录
下一章
×