1、长沙民政职业技术学院教案 课程名称: 单片机原理 课题名称: 第5讲 指令的格式及编码、寻址方式、数据传送指令 教学目的: 掌握7种寻址方式的执行过程;掌握数据传送类指令的格式,重点掌握它们的不同寻址方式及其应用。 难点和重点: 1.重点:机器语言指令与汇编语言指令;汇编语言指令格式;七种寻址方式;MOV指令中数据的传送路径。 2.难点:七种寻址方式。 教学过程 教学方法 多媒体讲授。 新课讲授(85min) 3.1 概述 什么是指令? 什么是程序? 什么是机器码? 什么是助记符? 什么是目标程序? 什么是源程序? 什么叫
2、汇编? 什么叫反汇编? 指令:是CPU根据人们的意图来执行某种操作的命令。 程序:指令的有序组合。 机器码指令:二进制编码形式的指令,计算机能直接识别和执行。 汇编语言指令:用英文缩写词(助记符)表示的指令,便于记忆和理解。 目标程序:用机器码编写的程序,即机器语言程序, .OBJ 源程序:用助记符编写的程序,如汇编语言程序, .ASM 3.1.1 指令的格式及编码 1.汇编语言指令格式 [标号:] 操作码 [目的操作数,] [源操作数] [;注释] 标号:表示该指令在ROM中存放的符号地址。 操作码:表示指令的功能,用助记符表示。 源操作数:参
3、加操作的数据来源。 目的操作数:操作结果存放的位置。 注释:对语句的解释说明。 例: BRGIN : MOV A , #00H ;累加器清0 课堂思考: 汇编语言格式指令由几部分组成?哪部分必须有?每个部分之间的分隔符是什么? 2.机器码 汇编语言程序 指令存放地址 机器码 C:0x0000 802E C:0x0030 7433 C:0x0032 04 C:0x0033 F54F
4、 C:0x0035 854F5E ORG 0000H JMP 0030H ORG 0030H START:MOV A,#33H INC A MOV 4FH,A MOV 5EH,4FH END 思考:机器码存放在单片机中什么地方?上述指令按机器码长短分为几种? 3.2 2 寻址方式 所谓寻址方式,指寻找操作数或操作数地址的方式,或者
5、说通过什么的方式找到操作数。 寻址方式的方便与快捷是衡量CPU性能的一个重要方面。 MCS—51单片机有七种寻址方式。 1.立即寻址 操作数直接出现在指令中,以“#”标识,立即数只能作为源操作数,不能当作目的操作数。 例如: MOV A,#52H ;A¬52H MOV DPTR,#5678H ;DPTR¬5678H 2.直接寻址 在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。可访问内部RAM、SFR、及可寻址位。 例如: MOV A,52H ;把片内RAM地址52H单
6、元的内容送累加器A中。 MOV P1,A ;把A的内容传送给P1(90H)。 MOV 50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中。 注意:SFR和片内可位寻址空间只能采用直接寻址方式访问。 3.寄存器寻址 由指令指出某一个寄存器中的内容作为操作数。 寄存器一般指A、B、DPTR、C、及R0~R7。 例如:MOV A,Rn ;A¬(Rn) 其中n为0~7之一,Rn是工作寄存器。 MOV Rn,A ;Rn¬ (A) MOV B,A ;B¬ (A) 4.寄存器间接寻址方式
7、 指令中寄存器中的内容给出的是操作数的地址。用@用标识。R0、R1和DPTR可以作为间接寻址寄存器。 (1)R0、R1间址访问片内RAM的低128B或片外RAM的低256B空间; (2)DPTR间址访问片外RAM的64KB空间。 例一:设(R0)=65H,(65H)=47H MOV A,@R0 ;(65H)àA,A中的值是47H MOV @R0,#3AH ;3AHà65H MOVX A,@R0 ;外RAM的(65H) àA 例二:设(DPTR)=2000H M
8、OVX @DPTR,A ;Aà外RAM的2000H单元 MOVX A,@DPTR ;外RAM的2000H单元à A 5. 加变址间接寻址 这种寻址方式用于访问程序存储器中的数据表格,它以基址寄存器(DPTR或PC)的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。 例如: MOVC A,@A + DPTR MOVC A,@A + PC 注:只有读操作,没有写操作。 6. 相对寻址 相对寻址以程序计数器PC的当前值(执行完本指令后下一条指令的地
9、址)作为基地址,与指令中给出的相对偏移量rel进行相加,把所得之和作为程序的转移地址。例如: JZ REL JC REL 7. 位寻址 MCS-51单片机中设有独立的位处理器。位操作指令能对内部RAM中的位寻址区(20H~2FH)和某些有位地址的特殊功能寄存器(SFR)进行位操作。 例:SETB TR0 ;TR0¬1 CLR 00H ;(00H)¬0 MOV C,57H ;将57H位地址的内容传送到累加器C中 注:上例中00H、57H不是字节地址,而是位地址。 3.3 指令系统 在分类介绍指令前,先把描述指令
10、的一些符号的意义作一简单介绍。 Rn―当前选定的寄存器区中的8个工作寄存器R0~R7,即n=0~7。 Ri―当前选定的寄存器区中的2个寄存器R0,R1,i=0、1。 Direct—8位内部RAM单元的地址,它可以是一个内部数据区RAM单元(00H~7FH)或特殊功能寄存器SFR(80H~0FFH)。 #data—指令中的8位立即数。 #data16—指令中的16位立即数。 addr16—16位的目的地址。 addr11—11位的目的地址。 rel—8位带符号的偏移量字节,用于SJMP和所有条件转移指令中。。
11、 bit—内部数据RAM或特殊功能寄存器中的可直接寻址位。 DPTR—数据指针,可用作16位的地址寄存器。 A—累加器。 B—寄存器。 C—进位标志。 @—间接寄存器或基址寄存器的前缀,如@Ri,@DPTR。 3.3.2 数据传送类指令 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 格式: MOV [目的操作数],[源操作数] 功能:用于内部RAM单元之间数据传送。 合法的数据传送: 课堂思考:哪些数据传送不合法。 课堂小结(5min) 1) 七种寻址方式 2)MOV指令 作业布置 P51:4、5、8 课后分析 第5讲 指令的格式及编码、寻址方式、数据传送指令(第 6 页 共 6 页)






