欢迎来到天天文库
浏览记录
ID:50066903
大小:790.00 KB
页数:78页
时间:2020-03-08
《单片机原理及控制技术 教学课件 作者 王君 第3章MCS51系列单片机的指令系统及汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MCS-51系列单片机的指令系统及汇编语言程序设计本章要点MCS-51单片机的7种寻址方式MCS-51单片机的指令系统汇编语言的基本格式程序结构及其设计方法典型应用程序的设计3.1指令系统概述3.1.1汇编指令格式3.1.2指令描述符号介绍MCS-51单片机汇编语言指令格式为:2.1.1汇编指令格式标号:操作码操作数或操作数地址;注释MCS-51单片机汇编语言指令由以下几个部分组成:标号操作码操作数或操作数地址注释标号标号是程序员根据编程需要,给指令设定的符号地址,可有可无;标号由1~8个字符组成,第一个字符必须是英文字母,不能是数字
2、或其它符号;标号后必须用冒号;在程序中,不可以重复使用。操作码操作码表示指令的操作种类,规定了指令的具体操作。比如:ADD(加操作),MOV(数据的传送操作)。操作数或操作数地址操作数或操作数地址表示参加运算的数据或数据的地址。操作数和操作码之间必须用空格分开,有两个以上操作数的操作数之间用逗号分隔。操作数一般有以下几种形式:没有操作数项,操作数隐含在操作码中,如RET指令;只有一个操作数,如CPLA指令;有两个操作数,如MOVA,#00H指令,操作数之间以逗号相隔;有三个操作数,如CJNEA,#00H,NEXT指令,操作数之间也以逗号相隔
3、。注释注释是对指令的解释说明,用以提高程序的可读性;注释前必须以“;”和指令分开,注释在每条指令后都可以设有。Rn当前工作寄存器中的某一个,即R0~R7;RiR0或者R1Direct单片机内部RAM低128字节(00h~7fh)中的某个字节地址,或者是某个专用寄存器的名字;#data8位(1字节)立即数#data1616位(2字节)的立即数Addr1616位目的地址,在LJMP和LCALL的指令中采用Addr1111位目的地址,只在AJMP和ACALL指令中采用Rel相对转移指令中的偏移量。DPTR数据指针(由DPH和DPL构成)Bit内
4、部RAM(包括专用寄存器)中可寻址位的地址或名字2.1.2指令中符号的意义说明A累加器ACCBB寄存器@间接寻址标志/加在位地址前,表示对该位状态取反(X)某寄存器或某单元的内容((X))由X间接寻址的单元中的内容箭头右边的内容传递给箭头左边操作数是指令的重要组成部分,指出了参与操作的数据或数据的地址。寻找操作数地址的方式称为寻址方式。一条指令采用什么样的寻址方式,是由指令的功能决定的。寻址方式越多,指令功能就越强。MCS-51指令系统共使用了7种寻址方式:立即寻址直接寻址寄存器寻址寄存器间接寻址位寻址变址寻址相对寻址3.2MCS-51单片
5、机的寻址方式MOVA,#40H;将40H这个立即数传送给累加器ACC,“#”符号称为立即数符号,40H在这里称为立即数。立即数寻址是指将操作数直接写在指令中。比如:MOVDPTR,#6789HMOVR0,#23HAXXMOVA,#40H40H3.2.1立即寻址寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。MOVA,R0数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用寄存器中。e.g.:MOVA,R7ADDA,R03.2.2寄存器寻址操作过程:MOVA,R0;设R
6、0的值为40HR0MOVA,R0AXX40H40H直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。MOVA,30H;将内部RAM30H单元内的数传送给累加器ACC。MOVTMOD,#20h;TMOD定时器方式控制寄存器,属于SFRADDA,30H;片内RAM30H单元的数据加到累加器ACCINC70H;片内RAM70H单元的数据加1MOV30H,70H;片内RAM70H单元的数据传送到30H单元。DEC50H;片内RAM50H单元的数据减1例如:
7、MOVA,30H;假如(30H)=55H30HMOVA,30H55HXXA55H3.2.3直接寻址3.2.4寄存器间接寻址在51单片机中有两个寄存器可以用于间接寻址,它们是R0和R1。当指向片外的64KB的RAM地址空间时,可用DPTR作间接寄存器。MOVA, @R0假如R0寄存器中的数据是50H,则以上指令的意思是:将内部RAM中50H单元内的数传送给累加器ACC。e.g.假如R1内的数是70H,在内部RAM的70H单元中存放的数据是00H,在执行以下指令后,外部RAM中3FFFH单元的内容是00H。MOVA,@R1MOVDPTR,#3F
8、FFHMOVX@DPTR,A以R0作为间址寄存器方式:MOVA,@R0以DPTR作为间址寄存器方式:55HAR055H取出地址78H78H3FFFHADPTR3FFFH取出地址7
此文档下载收益归作者所有