产品概述

MCS-51 单片机的寻址方式 单片机指令系统与寻址方式

小编 2025-09-10 产品概述 23 0

单片机指令系统与寻址方式

单片机要正常运作,事先需编制程序,再把程序放入存贮器中,然后由CPU执行该程序。程序是由指令组成的,指令的基本组成是操作码和操作数。单片机的品种很多,设计时怎样表示操作码和操作数,都有各自的规定,再有指令代码也各不相同,因此,必须对所选单片机的全部指令,也就是所谓“指令系统”,有足够的了解。各个系列的单片机虽然有不同的指令系统,但也有其共同性。掌握一种单片机的指令系统,对其它系列单片机可以起到触类旁通的作用。MCS-51单片机应用广泛,派生品种多,具有代表性,所以,这里以MCS-51系列的指令系统为例说明“指令”的组成和应用。

1、MOV A,#20H

这条指令表示把20H这个数送入累加器A中(一个特殊功能寄存器)。

2、ADD A,70H

这条指令表示把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),通过算术逻辑单元(英文缩写为ALU)相加,并将结果保留在A中。这里MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码通常由英文单词缩写而成,这样有助于记忆,所以又称助记符。如MOV就是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。因此,对于略懂英语的用户,掌握单片机指令的含意是较为方便的。操作数有多种表示法,如以上的#20H称为立即数,即20H就是真正的操作数。而70H是存贮器中某个单元的地址,在该单元中,放着操作数(比如说是3AH),ADD A,70H不是将70H和A中的内容相加,而是从存贮器70H单元中将3AH取出和A中的内容相加。由上可知,要找到实际操作数,有时就要转个弯,甚至转几个弯,这个过程称为寻址,MCS-51共有7种寻址方式,现介绍如下:

一、立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。

二、寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0就属于寄存器寻址,即将R0寄存器的内容送到累加器A中。

三、直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。

四、寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。

如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加@符号来表示这种间接寻址。如MOV A,@ R0。其它还有变址寻址、相对寻址、位寻址等。

五、位寻址(即可寻找某位的内容)功能,适于按位进行逻辑运算的位处理器。除128字节RAM、4k字节ROM和中断、串行口及定时器模块外,还有4组I/O口P0~P3,余下的就是CPU的全部组成。把4kROM换为EPROM就是8751的结构,如去掉ROM/EPROM部分即为8031的框图,如果将ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即可得到51系列的派生品种,如89C51、AT89C2051等单片机的框图。

单纯的对某一个储存单元的某位数进行操作应该怎样寻址呢?

这就需要位寻址

前面的几种寻址方式都是对存储单元的整个字节进行操作,如果要对某存储单元中的某位数进行操作,就要用位寻址方式。总结出来一个表,对照就行了

1.位寻址的范围

位寻址并不能操作存储器中任何单元中的某位数,它只能操作能进行位寻址的存储单元。可位寻址的单元如下。

① 数据存储器(RAM)内部的位寻址区。该区的字节单元地址是20H~2FH,共有16个存储单元,每个单元有8位,共有128位。

② 特殊功能寄存器(SFR)中一些可位寻址的寄存器。SFR 中可位寻址的寄存器有11 个(可位寻址的寄存器见表的第1列),每个寄存器有8位,共有88位,各位的位地址见表

2.位寻址的方法

位寻址的方法通常有以下几种。

(1)直接使用位地址

例如:MOV C,01H

这条指令的含义是将01H位(即20H单元的第1位)的数据送入程序状态字寄存器(PSW)的CY位(进位标志位)。

(2)采用“字节地址.位序号”形式

例如:MOV C,20H.1

这条指令的含义是将20H单元的第1位数据送入PSW的CY位。

(3)采用“位的符号地址”形式

例如:CPL AC

这条指令的含义是将PSW的AC位(辅助进位标志位)取反。CPL意为“位取反”。

(4)采用“寄存器符号.位序号”形式

例如:ANL C,PSW.0

这条指令的含义是将PSW的第0位与CY位进行相与运算,再将相与的结果保存在CY位。

这就是MCS-51系列单片机采用的7种寻址方式

相关问答

... 51 系列 单片机 对片内RAM和片外RAM存贮器各有哪些 寻址方式 _...

[最佳回答]对片内可以直接寻址和间接寻址,对片外的只能间接寻址

1.在 MCS-51单片机 外部扩展功能中,它可以提供地址线为()根,数...

[最佳回答]1.在MCS-51单片机外部扩展功能中,它可以提供地址线为(16)根,数据线为(16)根,可寻址的外部数据存储器容量为(64k),可寻址的外部程序存储器容...

MCS-51 系列 单片机 片内RAM与片外RAM存储器各有哪些 寻址方式 ?

片内RAM的寻址的寻址方式有:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址和位寻址。片外RAM的寻址方式只有间接寻址。访问片外RAM只有寄存器间接...

51单片机 00H到1FH工作区的 寻址方式 ?

51单片机00H到1FH共32个存储单元,分4组,每组8个,都分别叫作R0到R74组中只有一组是工作状态,具体选哪一组,由PSW寄存器中的RS0和RS1两位决定寻址方式,可...

其功能是.4、 MCS-51单片机 有组工作寄存器,它们的地址范围...

[最佳回答]不全会.

MCS-51的 串行口有哪几种工作 方式 ?

1、立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如movA,#20H。2、寄存器寻址:操...1...

MCS-51单片机 有多少个特殊功能寄存器?它们的名称和功能?

mcs-51单片机内的i/o口锁存器、定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现。它们位于片内数据存储器之上,离散地分布...

单片机 填空求助1. MCS-51 系列单片机为()位单片机.2.8051单片...

[最佳回答]1.MCS-51系列单片机为(8)位单片机.2.8051单片机有两种复位方式,既上电复位和手动复位.复位后SP=(07H),PC=(0000H),PSW=(00H),P0=(F...

MCS-51单片机 采用12MHZ的晶振,ALE引脚输出正脉冲频率为多少?

2MHz。ALE是低8位地址锁存信号。指令周期为1us(1Mhz),每个指令周期寻址两次。第一次寻址程序存储器,第二次寻址数据存储器。所以ALE的频率为Fosc/12*2=12/6=...

51单片机 所有伪指令?

MCS-51单片机常用伪指令一)符号定义伪指令符号定义名用法说明EQU为常量,符号名...MCS-51单片机常用伪指令一)符号定义伪指令符号定义名...

猜你喜欢