资源描述:
《学习教学教案第三章(寻址方式及传送指令).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章MCS-51单片机指令系统及编程举例补充:指令的字节数寻址方式指令系统及应用举例伪指令综合程序举例51系列单片机指令集含有111条指令每条指令在执行时要花去一定的时间,以机器周期为单位。按指令执行时间分类:单周期(64条);双周期(45条);4周期(2条)按指令的功能分类,可分为5大类:数据传送类(29条);算术运算类(24条)逻辑运算及移位类(24);控制转移类(17条)位操作类(17条)每条指令在程序存储器ROM中占据一定的空间,以字节为单位。按指令所占字节数分类:单字节(49条);双字节(46条);3字节(16条)补充:指
2、令的字节数在MCS-51单片机的指令系统中,因指令操作码和操作数的不同,指令(在存储器中)长度也各不相同。分为单字节、双字节和三字节。单字节指令(49条):分无操作数、有操作数两种。无操作数:如INCDPTR10100011BINCA00000100B【特点】:操作数隐含在操作码中。含有操作数寄存器名称的单字节指令:如:MOVA,R011101000BMOVA,R111101001B【特点】:寄存器名以三位数代码的形式在指令的后三位。双字节指令(46条):指令的操作码和操作数各占一个字节。如:MOVA,#data01110100Bda
3、ta很明显:8位的操作数本身占据一个字节。程序存储器01110100datann+1mova,#data双字节指令在程序存储器的存放示意图三字节指令(16条):指令中的操作数为双字节。如:MOVDPTR,#data161001000B,data15-8,data7-0或者:指令中分别包含1个字节的操作数和1个字节的操作数地址。如:MOVdirect,#data举例:MOV20H,#0FFH10010000data15-8data8-0MOVdptr,#data16OP(75H)direct(20H)data(FFH)MOVdirect
4、,#data三字节指令在存储器中存放的方式示意图指令的字节数与指令的运行时间指令的字节多是否意味着指令周期就长?指令字节数周期数指令说明MOVA,R011R0内容送累加器AMOVA,#0FFH21立即数FFH送AMOV20H,#30H32立即数30H送内存20h单元MULAB14乘法指令INCDPTR1116位寄存器DPTR加一从表中可见,指令的字节数与指令周期不是对等的关系51单片机指令的寻址方式立即寻址直接寻址寄存器寻址寄存器间接寻址基址变址寻址相对寻址位寻址寻址方式:指令中所规定的寻找操作数的方式七种寻址方式,一条指令可能含多种
5、寻址方式立即寻址操作数直接就出现在指令中例:MOVA,#64H;A←立即数64HADDA,#05H;A←(A)+立即数05H注意:符号“#”表明其后跟的是立即数,立即数——就是数字量本身。直接寻址指令中直接给出了操作数所在单元的地址或名称例:MOVR1,1FH;R1←(1FH)MOV30H,4AH;30H←(4AH)在本单片机中规定:访问特殊功能寄存器SFR只能采用直接寻址方式。例如:MOVA,SP;A←(SP)MOVA,81H;A←(SP)MOVP1,#5AH;P1←(#5AH)MOV90H,#5AH;P1←(#5AH)MOVB,3
6、0H;B←(30H)相同相同寄存器寻址从寄存器中读取操作数或存放操作数进寄存器例:MOVA,B;A←(B)MOV30H,R0;30H←(R0)MOVA,R1;A←(R1)寄存器间接寻址寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数注意:1)“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。2)符号“@”表示“在…”,其含义与读音皆同“at”。例:MOVR1,#30H;R1←立即数30H]MOV@R1,#0FH;30H←立即数0FHMOVA,@R1;A←((30H))=#0FH
7、在本单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地址重叠。MOVA,90H等效于MOVA,P1属直接寻址MOVA,@R0;[事先已知(R0)=#90H]执行的操作:A←(90H)属寄存器间接寻址,随意写的指令如:MOVA,85H则是非法的!于是规定:80H~0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:存储器配置(片内RAM)51片内
8、RAM128字节(00H—7FH)52片内RAM256字节(00H—0FFH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位