资源描述
长沙民政职业技术学院教案
课程名称: 单片机原理
课题名称: 第5讲 指令的格式及编码、寻址方式、数据传送指令
教学目的:
掌握7种寻址方式的执行过程;掌握数据传送类指令的格式,重点掌握它们的不同寻址方式及其应用。
难点和重点:
1.重点:机器语言指令与汇编语言指令;汇编语言指令格式;七种寻址方式;MOV指令中数据的传送路径。
2.难点:七种寻址方式。
教学过程
教学方法
多媒体讲授。
新课讲授(85min)
3.1 概述
什么是指令?
什么是程序?
什么是机器码?
什么是助记符?
什么是目标程序?
什么是源程序?
什么叫汇编?
什么叫反汇编?
指令:是CPU根据人们的意图来执行某种操作的命令。
程序:指令的有序组合。
机器码指令:二进制编码形式的指令,计算机能直接识别和执行。
汇编语言指令:用英文缩写词(助记符)表示的指令,便于记忆和理解。
目标程序:用机器码编写的程序,即机器语言程序, .OBJ
源程序:用助记符编写的程序,如汇编语言程序, .ASM
3.1.1 指令的格式及编码
1.汇编语言指令格式
[标号:] 操作码 [目的操作数,] [源操作数] [;注释]
标号:表示该指令在ROM中存放的符号地址。
操作码:表示指令的功能,用助记符表示。
源操作数:参加操作的数据来源。
目的操作数:操作结果存放的位置。
注释:对语句的解释说明。
例:
BRGIN : MOV A , #00H ;累加器清0
课堂思考:
汇编语言格式指令由几部分组成?哪部分必须有?每个部分之间的分隔符是什么?
2.机器码
汇编语言程序
指令存放地址 机器码
C:0x0000 802E
C:0x0030 7433
C:0x0032 04
C:0x0033 F54F
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 寻址方式
所谓寻址方式,指寻找操作数或操作数地址的方式,或者说通过什么的方式找到操作数。
寻址方式的方便与快捷是衡量CPU性能的一个重要方面。
MCS—51单片机有七种寻址方式。
1.立即寻址
操作数直接出现在指令中,以“#”标识,立即数只能作为源操作数,不能当作目的操作数。
例如: MOV A,#52H ;A¬52H
MOV DPTR,#5678H ;DPTR¬5678H
2.直接寻址
在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。可访问内部RAM、SFR、及可寻址位。
例如:
MOV A,52H ;把片内RAM地址52H单元的内容送累加器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.寄存器间接寻址方式
指令中寄存器中的内容给出的是操作数的地址。用@用标识。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
MOVX @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的当前值(执行完本指令后下一条指令的地址)作为基地址,与指令中给出的相对偏移量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 指令系统
在分类介绍指令前,先把描述指令的一些符号的意义作一简单介绍。
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和所有条件转移指令中。。
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 页)
展开阅读全文