173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

51单片机B的位寻址

htxw 2023-03-14 资讯中心 20 ℃

51单片机的寻址方式?

亲,你好。MCS-51系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。 寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。 寄存器可以使用寄存器组R0~R7中某一个或其它寄存器 (A,B,DPTR等)。 在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。 在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器 (SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。 MOV A, 90H ; 90H是P1口的地址。 指令操作码后面紧跟的是一字节或两字节操作数,用 # 号表示,以区别直接地址。 例如: 寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数.

51单片机的寻址方式及各自对应的寻址空间有哪些?CPU响应中断时,中断入口地址各是多少?

立即寻址:对应着程序存储器ROM

直接寻址:对应片内数据存储器低128B

寄存器寻址:对应片数据存储器中的特殊功能寄存器,主要是R0-R7,A,B,^

寄存器间接寻址:对应数据存储器(片内,片外)

相对寻址:ROM

变址寻址:ROM

位寻址:片内可以位寻址的寄存器及位寻址区(片内RAM20-2FH)

中断入口地址:

外部中断0:0003H

定时计数器0:000BH

外部中断1:0013H

定时计数器1:001BH

串口:0023H

51单片机的位寻址区问题

51单片机的位寻址区问题书上写着位寻址区是20H-2FH,位地址00H-7FH,这不是超过这个位寻址区了嘛,这两个区域是什么意思的?

是这样的,请你参考:

“51单片机的位寻址区问题书上写着位寻址区是20H-2FH”,这里的20H~2FH指的是片内RAM低128字节的“20H存储单元~2FH存储单元”,每个单元是一个字节,所以这里是16个字节,每个单元的地址分别是20H~2FH;

“位地址00H-7FH”,上面的16个字节,每个字节8位,总共128位,对这128各位又进行了编址,每个位的地址分别是00H~7FH;

位地址和单元地址虽然在数字上有所重复(00H~7FH包含有20H~·FH),但是在汇编指令上是能去分开的;比如:CLR    20H  这条指令是对位20H进行清零,不会对20H单元清零,因为对字节清零的汇编指令只有一条 CLR    A,这是对累加器A进行清零。

所有的指令都能把位地址和单元地址去分开,上边只是个例子,不必担心。

希望对你有所帮助!!!!!

51系列单片机寻址方式的寻址方式

立即数寻址又称立即寻址,即指令中直接给出操作数的寻址方式称为立即数寻址。在51系列单片机指令系统中,立即数用前面加“#”号的8位数表示(#data,如#30H)或16位数(#data16,如#2052H)表示。举例说明立即数寻址方式,以传送指令为例。

例:MOV A, #80H ;80H——A

MOV DPTR, #2000H ;2000H——DPTR 指令中直接给出操作数地址(dir)的寻址方式称为直接寻址。寻址对象为:1 内部数据存储器,在指令中以直接地址表示;2特殊功能寄存器SFR,在指令中用寄存器名称表示。

下面举例说明。

例:MOV A, 25H ;内部RAM的(25H)——A

MOV P0, #45H ;45H——P0 ,P0为直接寻址的SFR

MOV 30H,20H ;内部RAM的(20H)——(30H) 以通用寄存器的内容为操作数的寻址方式称为寄存器寻址。通用寄存器包括:A、B、DPTR、R0~R7。其中B寄存器仅在乘法、除法指令中为寄存器寻址,在其它指令中为直接寻址。A寄存器可以寄存器寻址,又可以直接寻址(此时写作ACC)。直接寻址和寄存器寻址的差别在于,直接寻址是操作数所在的字节地址(占一个字节),寄存器寻址是寄存器编码出现在指令码中。寄存器寻址速度比直接寻址要快。除上面所指的几个寄存器外,其它特殊功能寄存器一律为直接寻址。

例:MOV A, R0 ;R0——A,R0为寄存器寻址

MUL AB ;A×B——BA,A,B为寄存器寻址

MOV B, R0 ;R0——B,R0为寄存器寻址,B为直接寻址

PUSH ACC ;A的内容入栈,A为直接寻址

ADD A, ACC ;A为寄存器寻址,ACC为直接寻址 以寄存器中的内容为地址,该地址的内容为操作数的寻址方式称为寄存器间接寻址。能够进行寄存器间接寻址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器间接寻址的存储空间包括内部数据存储器和外部数据存储器。由于内部数据存储器共有128字节,因此用一字节的R0和R1可间接寻址整个空间。而外部数据存储器最大可达64K,仅R0或R1无法寻址整个空间,为此需要由P2端口提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同寻址64K字节范围。也可用16位的DPTR寄存器间接寻址64K字节存储空间。

在指令中,是对内部RAM还是对外部RAM寻址,区别在于对外部RAM的操作仅有数据传送指令,并且用MOVX作为操作助记符。

例:MOV @R0, A ;A——以R0内容为地址的内部RAM中

MOVX @DPTR, A ;A——以DPTR内容为地址的外部RAM中 由寄存器DPTR或PC中的内容加上A累加器内容之和而形成操作数地址的寻址方式称为变址寻址。变址寻址只能对程序存储器中的数据进行寻址操作。由于程序存储器是只读存贮器,因此变址寻址只有读操作而无写操作。在指令符号上采用MOVC的形式。

例:MOVC A, @A+DPTR ;(A+DPTR)——A

MOVC A, @A+PC ; (PC)+1——PC ((A)+(PC))——A

图4 MOVC A, @A+DPTR

图5 MOVC A, @A+PC 对位地址中的内容进行位操作的寻址方式称为位寻址。由于单片机中只有内部RAM和特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。位寻址是一种直接寻址方式,由指令给出直接位地址。与直接寻址不同的是,位寻址只给出位地址,而不是字节地址。

例:SETB 20H ;1——20H位

MOV 32H, C ;进位Cy(即指令中的C)——32H位 以当前程序计数器PC的内容为基址,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式称为相对寻址。相对寻址方式只修改PC值,故主要用于实现程序的分支转移。

例:SJMP 08H ;PC+2+08H——PC (该指令为两字节,所以有PC+2)

mc-51单片机4种寻址方式

(1)立即寻址:操作数就包含在指令代码中,在操作码之后,称为立即数,用“#”表示.

(2)直接寻址:直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址.操作

数在SFR、内部RAM、位地址空间.

(3)寄存器寻址:对选定的工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR中

的数进行操作.

(4)寄存器间接寻址:把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单

元中取数据.

(5)变址寻址(基址+变址):以DPTR或PC为基址寄存器,累加器A为变址寄存器.把两者内容相

加,结果作为操作数的地址.

(6)相对寻址:将PC中的当前内容与指令第二字节给出的数相加,结果作为跳转指令的转移地址

(转移目的地址).

(7)位寻址:对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式.

51单片机内部数据存储器有几个可寻址位?其地址范围是多少?

51单片机内部数据存储器有几个可寻址位?

--在字节地址 20H~2FH,称为“位寻址区”。

--在位寻址区,共有 16 字节,形成 128 个可寻址位。

其地址范围是多少?

--位地址的范围是:00H~7FH。

======================

另外,在特殊功能寄存器中,还有一些可寻址位。

但是,这些,不属于本题目的范围。

所以,楼主采纳的回答,有错。

51单片机B的位寻址的介绍到此就结束了,感谢您耐心阅读,谢谢。

本文标签:51单片机B的位寻址

<