微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 重温51单片机

重温51单片机

时间:11-26 来源:互联网 点击:

十六进制结尾用H十进制结尾用D八进制结尾用O二进制结尾用B

典型寻址

MOVA ,#37H//把立即数37H这个数本身送到累加器A中,指令操作码74H,操作数37H

MOVDPTR,#1122H//其中1122H为16位立即数,该指令将立即数的高8位11H送入到DPH中,将低8位22H送入到DPL中,操作码是90H,操作数是1122H。

直接寻址就是将操作数存放的地址告诉指令单片机中可以直接寻址的两类存储空间,1片内RAM的低128个字节单元其地址00H~7FH.2特殊功能寄存器,其直接地址也可以用特殊功能寄存器的符号名称表示,直接寻址是访问特殊功能寄存器的唯一方式。

例如

MOVA,2EH

这里,“2EH”就是直接寻址的地址,该指令的操作码是E5H,功能是把内部RAM地址为2EH中的内容传给累加器A。

寄存器寻址就是告诉指令操作数所存放的寄存器,此时寄存器的内容就是操作数。由于寄存器存位于CPU内部,所以寄存器寻址速度比其他几种方式快。

MOVA,R1//就是将寄存器R1的数据传送给累加器A

寄存器间接寻址相当于绕了一个大弯,此时数据存放到RAM中,而该RAM的地址放在寄存器中,这样通过访问寄存器来获得RAM中的操作数的寻址方式就是寄存器间接寻址。

单片机可以利用此方式寻址的空间:

1片内RAM的低128字节单元,此时需要R0,R1作为间接寻址的寄存器

2片外RA M,如果用R0,R1作为间接寻址的寄存器,可以寻址256个单元。如果采用16位的DPTR作为间接寻址的寄存器,可以寻完整个外部RAM 64KB地址空间。

在寻址指令中,寻址的寄存器钱需要加“@”标示符,这样就和寄存器寻址区分开。

变址寻址提供了16位地址的寻址能力,它采用基址寄存器加变址寄存器方式来寻址,其中基址寄存器为DPTR或者PC,变址寄存器为累加器A,用于存放地址偏移量。

变址寻址的两种形式;

MOVA,@A+DPTR//功能是将累加器A的内容和数据指针DPTR的内容相加形成操作数的地址,即程序存储器的16位地址。

MOVA,@A+PC//功能是将累加器A的内容和PC的内容相加形成操作数的地址,即程序存储器的16位地址。

相对寻址是根据指定地址的偏移量,然后从当前PC值跳转到偏移量所指向的地址的方式,这里的地址偏移量为带符号的8位二进制数,其取值范围是-128~+127,因此相对寻址可以寻址当前的PC的-128~+127之间的某段程序存储器。

例如SJMP33H//本指令占用两个字节,因此PC指针的当前值为PC+2.地址偏移量是33H,则程序跳转的地址为PC+2+33H.

位寻址是特别为位操作区域提供的寻址方式,在指令中给出位地址即可。

51单片机中,可以位寻址的区域;

1片内RAM的20H~2FH单元,共16*8=128位,可以直接使用位地址来表示,例如,20H单元的0~7位的位地址是00H~07H,也可以使用RAM地址加序位号表示,例如2AH.1表示2AH单元的D1位。

2可位寻址的特殊功能寄存器相应位,这些为均有特定的名称,因此可以直接采用位名称来表示,或者采用寄存器符号加位序号表示,例如PSW.3表示PSW寄存器中的D3位。

典型表示;

MOVC,2AH.5//把地址2AH中的第六位D5,即2AH.5的值(0或1)传送到位累加器CY中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top