资源描述:
《第3章单片机指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机原理与应用Principle&ApplicationofMCU南方医科大学生物医学工程学院2013.9郭淑艳15112138325QQ18036174生命科学大楼6-3-17第3章80C51单片机指令系统1教学内容和要求教学内容80C51单片机指令格式、操作数的寻址方式按功能分类介绍80C51单片机指令数据传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转移类指令和位操作类指令教学要求掌握数据传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转移类指令和位操作类指令等。熟悉80C51单片机指令寻址方式。了解80C51单片机指令的字节数、指令
2、周期、对于标志位的影响。280C51单片机汇编语言指令的格式由四部分组成:[标号:]操作码[操作数1,][操作数2,][操作数3][;注释][]中的内容不是必须的,指令格式的顺序是不能更改的。LOOP_1:MOVA,R0;将R0的内容送到累加器A中3标号对指令做标记,等于指令在存储空间的实际地址,具有唯一性,便于编程时找到该条指令.用于分支程序和循环程序的跳转、子程序调用。标号必须以字母开头,后跟1-8个数字、字母、下划线等,以冒号“:”结尾。不能与系统保留字(指令助记符如mov、汇编伪指令如org、寄存器名dptr)相同。在其它指令中可把标号作为操作数进
3、行引用。4LJMPLOOP_1MOVA,#LOOP_1操作码用于规定指令进行什么操作用英文缩写表示,如加法ADD、减法SUBB、传送MOV等操作码与操作数之间用空格分隔,操作数与操作数之间用“,”隔开在指令中不能缺少操作码操作码是给定的,不能自创5注释对语句或程序简要说明,帮助阅读、理解源程序该部分内容不会被编译成为目标代码,不影响程序的执行。可有可无,不是必备的。以分号“;”开始,多行注释时每行都要有“;”。6【例】下面哪些符号是合法的标号?(1)A_1:(2)1A:(3)A:(4)A+1:(5)_A1:(6)mov:(7)mov17合法的标号有:(1)
4、(3)【例】根据指令的格式要求,说出下面哪些指令是合乎语法的?(1)LOOP:MOVAR0(2)LOOPMOVA,R0(3)LOOP:MOVA,R0(4)MOVA,R0(5)MOVA,R0;THISISMOVA,R0(6);THISISMOVA,R0(7)LJMPLOOP(8)MOVA,#LOOP合乎语法的有:(3)(4)(5)(6)880C51单片机指令寻址方式操作数是指令操作的对象,寻找操作数的方法称为指令寻址方式。80C51单片机指令系统共有7种寻址方式。立即寻址方式寄存器寻址方式直接寻址方式寄存器间接寻址方式变址寻址方式相对寻址方式位寻址方式9立即
5、寻址方式指令的操作数直接在指令中给出,称为立即数,“#”前缀。#data8#data16立即数可以多种进制表达十六进制后缀H、二进制后缀B、十进制带后缀D或省略。MOVA,#20H;(A)←20HMOVDPTR,#3456H;(DPH)←34H;(DPL)←56HMOVA,#0BHMOVA,#1011BMOVA,#11DMOVA,#1110寄存器寻址方式操作数在寄存器中,以符号名称来表示。主要对象是通用寄存器R0-R7、特殊功能寄存器。INCR3;(R3)←(R3)+111直接寻址方式操作数直接以存储单元地址的形式给出。主要对象是内部数据存储器。注意与立即
6、寻址方式的区别。ROMMOVA,70H;(A)←(70H)12地址大于或等于80H的存储单元为特殊功能寄存器,如地址0F0H表示B寄存器。对寄存器Rn既可以用其名也可以用其地址寄存器间接寻址方式寄存器中是操作数的地址,而不是操作数本身。与寄存器寻址方式的不同。内部RAM@Ri外部RAM@Ri或@DPTRi=0/1MOVA,@R0;(A)←((R0))13MOVR0,#30HMOVA,@R0MOVR1,AMOVB,@R1MOV@R1,P1MOVA,@R0MOV10H,#20HMOV30H,10H【例】已知(30H)=40H,(40H)=10H,(10H)=0
7、0H,P1=0CAH,请指出寻址方式,并写出执行以下程序段后有关单元的内容。14(R0)=30H(A)=40H(R1)=40H(B)=10H(40H)=0CAH(A)=40H(10H)=20H(30H)=00H变址寻址方式以程序计数器PC或数据指示器DPTR中的内容为基地址,加上累加器A(变址寄存器)中的内容作为操作数的地址。MOVCA,@A+DPTR;(A)←((A)+(DPTR))15MOVCA,@A+PC;(A)←((A)+(PC))JMP@A+DPTR!变址寻址方式只能对程序存储器ROM进行寻址,是一字节指令。相对寻址方式目的地址=转移指令地址+转
8、移指令字节数+rel通常采用标号(如:LOOP),不需计算。SJM