MCS-51单片机寻址方式小结
MCS-51单片机寻址方式小结201*-08-2920:34:02|分类:エ程|标签:|字号大中小订阅MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。寻址方式定义操作数存放(1)通用寄存器R0~R7;寄存器于寄存器中,(2)部分专用寄存器,例如累加器A、寄存器B以寻址指令中给出数据指针DPTR等名寄存器存放操作数的(1)内部RAM中的低128地址单元,地址范围为内存单元地址00H~FFH;直接寻址直接写在指令中立即数操作数直接寻址写在指令中(2)专用寄存器。专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。源操作数为立即数,立即数前面必须加“#”号,以区别立即数和直接地址(1)内部RAM的低128字节。对内部RAM的低128字节单元的间接寻址,只能使用R0或R1做间将存放操作接寻址寄存器,其通过形式为@Ri(i=0或1);MOVP1,#55HMOVDPTR,#201*HMOVR1,20HMOVA,P1CLRAMOVP1,R4MOVA,R1寻址区域指令举例数的内存单元(2)外部RAM的64K字节。对外部RAM的64KMOVA,@R0寄存器的地址放在寄字节的间接寻址,使用DPTR作间接寻址寄存器,MOVXA,@DPTR间接寻址存器中,指令其形式为@DPTR;MOVXA,@R0中只给出该寄(3)外部RAM的低256字节。外部RAM的低256存器字节是一个特殊的寻址区,除了可以使用DPTR作间接寻址寄存器外,还可以使用R0或R1作间接寻址寄存器将基寄存器变址寻址与变址寄存器的内容相(1)变址寻址是专门针对程序存储器的寻址方式,所以只能对程序存储器进行寻址,寻址范围为64K字节;MOVCA,@A+PC加,结果作为操作数的地址(2)变址寻址指令只有2条:MOVCA,@A+PCMOVCA,@A+DPTR将程序计数器PC的当前内容与指令相对寻址中的操作数相加,其结果作为跳转指令的转移地址(1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,每个单元包括8个位,共按位进行的位寻址操作(2)特殊功能寄存器SFR中的11个寄存器可以位寻址,包括83个位计128个位,位地址为00H~7FH;MOVC,0D0HMOVC,0DOH.0MOVC,PMOVC,PSW.0专门为改变程序执行方向而设置的SJMP54H
扩展阅读:课题MCS-51型单片机的寻址方式
广告灯设计软件部分
课题MCS-51型单片机的寻址方式
授课方式:讲授教学目的:
1.让学生了解汇编语言指令的格式;2.让学生掌握单片机指令的7种寻址方式。重点、难点:
1.单片机的格式和指令中的常用符号;2.单片机指令7种寻址方式的特点和区别。教学过程:一、导入
前段时间我们学习了单片机的硬件方面的内容,这次课开始我们就要开始接触软件方面的内容。试想舞台灯光的控制,不同灯的点亮来实现不同的场景需求,如果我们从分析8个指示灯全部电亮为切入点,那么要实现这个要求,我们首先要学习的8051单片机的软件语言形式。所以这次课我们的主要内容学习什么是指令以及它的一些表示形式以及单片机的7种寻址方式,为我们后续的控制目标打下基础。二、概述
指令:是指示计算机执行某种操作的命令。
指令系统:一台计算机所具有的全部指令的集合,称为指令系统。程序:是各种指令的有序组合。三、指令的表示形式及汇编1.指令的表示形式
指令可以用汇编语言和机器语言两种形式表示。设计者编写、阅读和修改程序时,采用汇编语言格式。当计算机执行程序时,则采用机器语言形式。
指令的汇编语言形式是用助记符表示各条指令,用助记符编写的程序称为汇编语言程序(或称源程序)。2.汇编
汇编语言编写的程序要转换成计算机能执行的机器码表示的程序,这种转换称为汇编。反之,称为反汇编。常用的汇编方法有两种:一是手工汇编,二是机器汇编。
四、指令的格式及编码
广告灯设计软件部分
1.汇编语言的语句格式
汇编语言的语句即所用指令的格式如下:
[标号:]操作码[目的操作数][,源操作数][;注释]
其中,带方括号[]的部分可以根据实际情况取舍。标号与操作码之间用“:”作分隔符,也可以加上若干空格。操作码和操作数之间可以用空格作分隔符。操作数与操作数之间以“,”分隔。注释之前用“;”作分隔符。
(1)标号标号是表示该指令位置的符号地址,标号后必须加“:”。(2)操作码操作码表示指令所实现的操作功能,操作码助记符由表示指令操作功能的英文缩写组成。
(3)操作数操作数指出了参加操作的数据来源和操作结果存放的位置。(4)注释注释是对语句的解释说明,必须以“;”为开始。2.指令编码格式
令编码格式即机器语言指令格式。指令按编码长短可以分为如下3种编码格式:
(1)单字节指令(2)双字节指令(3)三字节指令五、常用符号
为了便于学习和阅读指令,MCS-51的指令系统中,采用了以下符号:1.Rn(n=1~7):指当前选中的工作寄存器组R0~R7中之一。
2.Ri(i=0~1):指当前选中的工作寄存器组中能用作间址寄存器的R0、R1。3.#data:8位立即数。4.#data16:16位立即数。
5.direct:片内RAM单元(包括SFR)的直接地址。6.addr11:11位目的地址。7.addr16:16位目的地址。
8.rel:补码形式表示的8位地址偏移量。以下一条指令第一字节地址为基址,地址偏移量范围为-128~+127。
9.bit:片内RAM或SFR的直接寻址位地址。10.@:间接寻址方式中,表示间址寄存器的符号。
11./:位操作指令中,表示对该位先求反再参与操作,但不影响该位原值。
广告灯设计软件部分
12.C:最高位进位或借位标志位或布尔处理器的累加器13.(×):表示由×所指地址单元或寄存器中的内容。
14.((×)):表示以×所指地址单元或寄存器中的内容为地址的存储单元中的内容。
15.→:数据传送方向。六、寻址方式
MCS-51单片机指令主要有以下7种寻址方式:1.立即寻址
在这种寻址方式中,操作数为立即数,即操作数直接出现在指令中。操作数为8位或16位数据,用符号“#”表示标识,以区别直接地址。例1MOVA,#3AH;3AH→A
这条指令是把3AH这个数送入累加器A中。
ROM
A操作码74H操作数3AH3AH3AH图1
2.直接寻址
直接寻址就是在指令中直接给出了操作数的地址。例2MOVA,70H;(70H)→A
这条指令把70H单元内容3AH送入累加器A中
图2
3.寄存器寻址
ROM
内部RAM操作码E5H操作数70H70HA3AH3AH广告灯设计软件部分
寄存器寻址是指定某一可寻址的寄存器的内容为操作数。例3MOVA,R5;(R5)→A
ROM
低三位为101R561HA操作码EDH61H图3
4.寄存器间接寻址
寄存器间接寻址是把指令中指定的寄存器的内容作为操作数的地址。例4MOVA,@R1;((R1))→A
ROM
内部RAM
最低位为1R175H3FHA操作码E7H75H图43FH5.变址间接寻址
变址间接寻址是以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址。
例5MOVCA,@A+PC;((A)+(PC))→A
MOVCA,@A+DPTR;((A)+(DPTR))→A
ADPTRROM
02F1H+
0302H1AHA1AH
11H图5
6.相对寻址
相对寻址是将程序计数器PC的当前值(是指执行完这条相对转移指令后的下一条指令的地址)为基准,与指令中的偏移量相加,其结果作为指令的转移地
广告灯设计软件部分
址。指令给出的偏移量有正负号,它在指令中以补码形式给出,所转移的范围为-128~+127。
例6JCrel
这条指令表示若(C)=0,则不跳转,程序继续向下执行;若(C)=1,则以PC中的当前值为基地址,加上偏移量rel后所得到的结果为该转移指令的目的地址。
+2+30HPC0100HROM
源地址
0100H40H
0101H30H0102H
PC0132H0132H目的地址
图6
正向跳转时:
rel=目的地址-源地址-2=地址差-2
反向跳转时,目的地址小于源地址,rel用负数的补码表示:
rel=(目的地址-(源地址+2))补=FFH-(源地址+2-目的地址)+1
=FEH-│地址差│7.位寻址
位寻址是指对片内RAM的位寻址区和某些有位地址的特殊功能寄存器进行位操作时的寻址方式。
例7MOVC,07H
CLRACC.0
第一条指令功能是把内部RAM20H单元的D7位(位地址为07H)的内容传到位累加器C中,第二条指令功能是将累加器A的D0位(位地址为E0H)清0。
广告灯设计软件部分
内部RAM
20H10000000(07H)=1C1图7
小结:
1.编程者阅读、编辑、修改用汇编语言源程序,单片机直接运行机器语言程序。现一般采用汇编软件将汇编语言源程序转化为机器语言。2.51系列单片机7种寻址方式的特点和区别。
友情提示:本文中关于《MCS-51单片机寻址方式小结》给出的范例仅供您参考拓展思维使用,MCS-51单片机寻址方式小结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。