80C51单片机指令系统的7种寻址方式

时间:2023-03-11作者:佚名
寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉并灵活运用。
对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。
80C51单片机指令系统共有7种寻址方式,包括:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。现以7条指令为例说明这7种寻址方式。

80C51单片机指令系统的7种寻址方式
(1)立即寻址:将操作数直接写在指令中。
如指令①: MOV A,#3AH 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。注意,立即数前面必须加“#”号,以区别立即数和直接寻址。该指令的执行过程如图1所示。

80C51单片机指令系统的7种寻址方式
图1 立即数寻址示意图
(2)寄存器寻址:是指将指令操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。
如指令②: MOV A,R0 ;(A)←(R0)
该指令将寄存器R0中的数送入累加器A中,因为指令源操作数为寄存器R0,所以称此寻址方式为寄存器寻址。
如果程序状态寄存器PSW的RS1RS0=00(选中第0组工作寄存器,对应地址为(00H~07H),设RAM区00H的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。该指令执行过程如图2所示。

80C51单片机指令系统的7种寻址方式
图2 寄存器寻址示意图
(3)直接寻址 :是指把存放操作数的内存单元的地址直接写在指令中。在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。
如指令③:MOV A,30H ;(A)←(30H)
该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。若(30H)=3AH,指令③执行后,(A)=3AH,该指令的执行过程如图3所示。

80C51单片机指令系统的7种寻址方式
图3 直接寻址示意图
(4)寄存器间接寻址:将存放操作数的存储单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在80C51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。
注意:间接寻址寄存器前面必须加上符号“@”。
如指令④:MOV A,@R0 ;(A)←((R0))
该指令将以R0中内容为地址的存储单元的内容送入累加器A中,因为指令操作数是存储单元,其地址由寄存器R0间接给出,所以称此寻址方式为寄存器间接寻址。
设R0=3AH,内部RAM 3AH中的值是65H,则指令MOV A,@R0的执行结果是累加器A的值为65H,该指令的执行过程如图4所示。

80C51单片机指令系统的7种寻址方式
图4 寄存器间接寻址示意图
(5)变址寻址 :是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变址寄存器。这种寻址方式称为变址寻址。该寻址方式主要用于查表操作。
当执行指令⑤时,设(A)=50H ,(DPTR)=2007H,(2057H)=60H ,指令⑤执行后MOVC A,@A DPTR ;(A)←((A) (DPTR))=(50H 2007H)=(2057H)=60H。
该指令将DPTR中的基地址2007H与A中的偏移地址50H相加,形成实际地址2057H,再将地址为2057H的存储单元中的内容60H送入累加器A中。显然这种寻址方式称为变址寻址。该指令执行过程如图5所示。

80C51单片机指令系统的7种寻址方式
图5 变址寻址示意图
(6)相对寻址 :是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。这种寻址方式称为相对寻址。该类寻址方式主要用于跳转指令。
如指令⑥:SJMP rel ;(PC)←(PC) rel
当执行指令⑥时,设当前(PC)=2009H,而相对偏移量rel=02H,则执行该指令后,(PC)=2009H 02H=200BH,即程序由地址为2009H处跳转到200BH处执行,其跳转的距离为相对偏移量rel=02H。由于指令中的操作数为相对偏移量rel ,所以称这种寻址方式为相对寻址。该指令的执行过程如图6所示。

80C51单片机指令系统的7种寻址方式
图6 相对寻址示意图
(7)位寻址 :指令中操作数为8位二进制数某一位,称为位寻址。80C51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。
位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,位地址为00H~7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址。参见位地址的定义。
例如:SETB ACC.0 ;(ACC.0)←1 该指令将累加器的最低位ACC.0置1,由于指令中的操作数为一位二进数,故称此寻址方式为位寻址。该指令的执行过程如图7所示。

80C51单片机指令系统的7种寻址方式
图7 位寻址示意图
由寻址方式的讨论可知,操作数按类型可分为:立即数、寄存器、存储单元、位操作数、相对偏移量。而存储单元地址又可有直接寻址,寄存器间接寻址,变址寻址三种。
各种寻址方式对应操作数的指令符号规定如下。
(1)#data:表示8位立即数,如#3AH。
(2)#data16:表示16位立即数,即0000H~FFFFH。
(2)Rn:表示寄存器R0~R7。
(3)direct:表示片内存储单元的直接地址, 如30H。
(4)addr16,addr11:表示指令中的16位或11位转移地址。
(5)rel:表示相对偏移量,如 02H。
(6)bit:表示位地址,如ACC.0。
(7)( ):表示存储单元的内容,如(30H)=40H。
(8)(( )):表示间接寻址的存储单元内容,((R0))=(7FH)=50H。

相关阅读

一个简单的数字电源电路图

这是一个简单的数字电源电路图,可以以相当小的步长获得 1.25V 至 15.19V 的可变直流电压。通过按升、降开关可以减小升、降电压的档次,并采用LED指示灯显示输出电压的高低。您可以...
2023-08-10
一个简单的数字电源电路图

直流系统两点接地远比单点接地凶险!吃透两类接地的危害与处置

一、基础认知 直流系统正常工况与单点接地,仅为预警状态 工厂配电室常用220V直流系统,为所有高压开关分合闸、继电保护、测控装置提供操作电源。正常状态下,直流正负极对地绝缘...
2026-06-19
直流系统两点接地远比单点接地凶险!吃透两类接地的危害与处置

时间继电器控制顺序启动、逆顺序停止电路

时间继电器控制顺序启动、逆顺序停止电路 启动 按下启动按钮SB2,得电延时时间继电器KT1,失电延时时间继电器同时得电。 KT1顺动常开触点闭合形成自锁。KT2失电延时动作常开触点闭...
2023-08-22
时间继电器控制顺序启动、逆顺序停止电路

缩短PLC程序扫描周期的方法

提高plc 运行效率,缩短完成相同任务时的执行时间。 提醒: 初学者不必在意本文归纳的做法,以程序易读、规范为目标,完成功能要求即可。 1、可以用“字”的时候尽量避免用“双...
2023-03-21

高容量电容器放置时间久了,容量会下降的原因是什么?

近期我们收到客户反馈一个X5R材质的产品在其检验过程中实测容量偏低。其实一直以来,II类材质实测容值低于标准值要求的情况屡见不鲜,尤其是X5R材质的高容,此类现象表现尤为突...
2023-03-31
高容量电容器放置时间久了,容量会下降的原因是什么?

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目