单片机原理及应用 教学课件 ppt 作者 杨恢先 黄辉先 第三章

上传人:E**** 文档编号:89355538 上传时间:2019-05-23 格式:PPT 页数:69 大小:786.51KB
返回 下载 相关 举报
单片机原理及应用 教学课件 ppt 作者  杨恢先 黄辉先 第三章_第1页
第1页 / 共69页
单片机原理及应用 教学课件 ppt 作者  杨恢先 黄辉先 第三章_第2页
第2页 / 共69页
单片机原理及应用 教学课件 ppt 作者  杨恢先 黄辉先 第三章_第3页
第3页 / 共69页
单片机原理及应用 教学课件 ppt 作者  杨恢先 黄辉先 第三章_第4页
第4页 / 共69页
单片机原理及应用 教学课件 ppt 作者  杨恢先 黄辉先 第三章_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《单片机原理及应用 教学课件 ppt 作者 杨恢先 黄辉先 第三章》由会员分享,可在线阅读,更多相关《单片机原理及应用 教学课件 ppt 作者 杨恢先 黄辉先 第三章(69页珍藏版)》请在金锄头文库上搜索。

1、第三章 MCS51指令系统,3.1 汇编语言指令格式 3.1.1 汇编语言格式 3.1.2 汇编伪指令 3.2 MCS-51的寻址方式 3.3 MCS-51指令系统 3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算类指令 3.3.4 位操作类指令 3.3.5 控制转移类指令,计算机的指令系统是一套控制计算机操作的编码机器语言。计算机只能识别和执行机器语言的指令。但机器语言实在太枯燥,太难记忆了。,3.1 汇编语言指令格式,操作码:反映了指令的功能。 操作数:反映了指令的对象。,3.1.2 汇编伪指令,伪指令:汇编时不产生机器语言代码的指令,仅提供汇编控制信息。 一、

2、定位伪指令 ORG m m:一般为十六进制数。 m指出在该伪指令后的指令的汇编地址,即生成的机器指令起始存贮器地址。显然,当使用多条ORG m伪指令时,应注意其后生成的机器指令存放地址不应重叠。 eg: ORG 0 START: SJMP MAIN ORG 0BH LJMP PTFO ORG 40H MAIN:,二、定义字节伪指令 标号: DB X1、 X2 Xn,3.1.2 汇编伪指令,ORG 1000H DB 0AAH SJ-DATA: DB 25,25H ZFC-DATA: DB MCS-51 经汇编后,从地址1000H处存贮器的内容为: (1000H)= AAH (1001H)= 19

3、H (1002H)= 25H (1003H)= 4DH (1004H)= 43H (1005H)= 53H (1006H)= 2DH (1007H)= 35H (1008H)= 31H,三、字定义伪指令 标号: DW Y1、 Y2 Yn,3.1.2 汇编伪指令,通知汇编程序从当前ROM地址开始,保留存贮单元,并存入DW后面的数据。存放时高8位在前,低8位在后。 例3-3 ORG 1000H DW 1234H SJ_DATA: DW 56H,2000 经汇编后,从地址1000H处存贮器的内容为: (1000H)= 12H (1001H)= 34H (1002H)= 00H (1003H)= 56

4、H (1004H)= 07H (1005H)= D0H,四、EQU 赋值伪指令 字符名称 EQU 项(数或汇编符号),3.1.2 汇编伪指令,例:3-4: AA EQU R1 MOV A,AA 例:3-5: D10 EQU 10 ADD_Y EQU 07ABH MOV A,D10 LCALL ADD_Y,EQU伪指令是把“项”赋给“字符名称”,注意这里的“字符名称”不同于标号(其后没有冒号),但它是必须的。用EQU赋过值的符号名可以用作数据地址、代码地址、位地址或是一个立即数。,五、DS定义存贮空间伪指令 DS 表达式,3.1.2 汇编伪指令,在汇编时,从指定地址开始保留DS之后“表达式”的值

5、所规定的存贮单元。,ORG 1000H DS 07H DB 20H,20 DW 12H 经汇编后,从地址1000H开始保留7个单元,然后从1007H处存贮器的内容为: (1007H)= 20H (1008H)= 14H (1009H)= 00H (100AH)= 12H,六、DATA数据地址赋值伪指令 字符名称 DATA 表达式,3.1.2 汇编伪指令,这里的“字符名称”与标号不同(其后没有冒号),但它是必须的,其功能是把“表达式”的值赋给左边的“字符名称”。 DATA伪指令与EQU伪指令的主要区别是:EQU定义的“字符名称”必须先定义后使用,而DATA定义的“字符名称”没有这种限制,故DAT

6、A伪指令通常用在源程序的开头或末尾。,例3-7: ORG 0100H AA DATA 35H DPTRA DATA 0AA00H MOV A,AA ;(35H) A MOV DPTR,#DPTRA ;0AA00H DPTR,七、BIT定义位地址符号伪指令 字符名称 BIT 位地址,3.1.2 汇编伪指令,这里的“字符名称”与标号不同(其后没有冒号),但它是必须的,其功能是把BIT之后的“位地址”值赋给“字符名称”。,例3-6: P11 BIT P1.1 A2 BIT 02H MOV C,P11 MOV A2,C,八、汇编结束伪指令 END指出汇编结束,其后即使还有指令,汇编程序也不作处理。,3

7、.2 MCS-51的寻址方式,在高级语言编程时,程序设计人员不必关心程序和数据的内存空间安排问题。但在汇编语言程序设计时,要针对系统的硬件环境编程,数据的存放、传送、运算都要通过指令来完成,编程者必须自始至终都十分清楚操作数的位置,以便将它们传送至适当的空间去操作。,寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法。,MCS51指令的系统的指令数的寻址方式主要有八种:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基寄存器加变址寄存器间接寻址、相对寻址、位寻址、页面寻址。,一、寄存器寻址 由指令某一寄存器的内容作为操作数的寻址方式。 eg: INC R0 ;(R0)+1 R0,IN

8、C R0指令执行过程示意图,3.2 MCS-51的寻址方式,在指令中含有操作数的直接地址,该地址指出了参与计算或传送的数据所在的字节单元或位的地址。 eg: ANL 70H,#48H ;(70H)48H70H,二、 直接寻址,操作数的直接地址,3.2 MCS-51的寻址方式,在指令中某一个寄存器的内容作为操作数的地址的寻址方式,用符号表示。 eg: ANL A, R0 ; (A)( R0 ) A,寄存器间接寻址使用所选定的寄存器中R0和R1作地址指针(对栈操作时用堆栈指针SP)来寻址内部RAM(0FFH),也适用于访问外部扩展的数据存贮器,用R0、R1或DPTR作为地址指针。,三、寄存器间接寻

9、址,3.2 MCS-51的寻址方式,操作数包含在指令字节中 eg: MOV A,#70H,以16位的程序计数器PC或数据指针DPTR作为基寄存器,以8位的累加器A作为变址寄存器,内容相加形成16位新的地址。 MOVC A, A +PC ;(A)+(PC) A MOVC A, A +DPTR ;(A)+(DPTR) A,五、基寄存器加变址寄存器间接寻址,四、立即寻址,3.2 MCS-51的寻址方式,3.2 MCS-51的寻址方式,六、相对寻址,相对寻址方式是以当前的程序计数器PC值加上指令中给定的偏移量rel所得的结果作为转移地址。一般将相对转移指令操作码所在地址称为源地址,转移后的地址称为目的

10、地址,则有: 目的地址 = 源地址 + 相对转移指令字节数 + rel,3.2 MCS-51的寻址方式,七、位寻址,在计算机中,某些特定的操作数可以按8位二进制数中的某一位为单位进行存取和操作。位寻址方式是其操作数是8位二进制中的某一位。,例315:MOV C,01H ;01H为位地址, 表示(20H).1的内容传送到进位累加器。 例316:SETB EA 表示中断允许寄存器IE的位7置1。,3.2 MCS-51的寻址方式,八、页面寻址,当用寄存器间接寻址方式访问外部扩展的数据存贮器,当用R0、R1作地址指针访问片外RAM时的寻址方式称为页面寻址。页面地址由P2口的内容决定,页面内的地址由R0

11、或R1的内容决定。,例317: MOV P2,#0A0H MOV R0,#01H MOV A,#10H MOVX R0,A,(1)对程序存贮器只能采用立即寻址和基寄存器加变址寄存器间接寻址寻址方式。 (2)对特殊功能寄存器空间只能采用直接寻址方式(可以用符号来代表地址),不能采用寄存器间接寻址方式。 (3)内部RAM高128B只能采用寄存器间接寻址方式,不能采用直接寻址方式。 (4)内部RAM低128B 既能采用寄存器间接寻址方式,又能采用直接寻址方式。 (5)外部扩展的数据存贮器只能采用MOVX指令访问。,虽然MCS51单片机的寻址方式有多种,但指令对哪一个存贮器空间进行操作是由指令的操作码

12、和寻址方式确定的。总的来说,具有以下几点原则:,3.2 MCS-51的寻址方式,MCS51汇编语言有42种操作码助记符,33种操作功能,111种指令,可分为: 数据传送类(29) 算术操作类(24) 逻辑操作类(24) 位操作类 (17) 控制转移类(17),3.3 MCS-51的指令系统,3.3.1 数据传送类指令,数据数据传送类指令一般的操作是把源操作数传送到目的操作数,指令执行后,一般是源操作数不改变,目的操作数修改为源操作数。可以在累加器A、工作寄存器R0R7、内部数据存贮器、外部数据存贮器和程序存贮器之间进行。这类指令有:MOV,MOVX,MOVC,XCH,XCHD,SWAP,POP

13、,PUSH共8种。,一、以累加器A为目的操作数的指令,把源操作数的内容送ACC,源操作数的内容不变化。,二、以Rn为目的操作数的指令,3.3.1 数据传送类指令,源操作数的内容送入当前工作寄存器区的R0R7,MOV Direct ,A ;寄存器寻址 MOV Direct ,Rn ;寄存器寻址 MOV Direct ,Direct ;直接寻址 MOV Direct , Ri ;寄存器间接寻址 MOV Direct ,#data ;立即寻址,三、以直接寻址的单元为目的操作数的指令,3.3.1 数据传送类指令,源操作数的内容送入直接地址指出的存贮单元。,四、以寄存器间接寻址的单元为目的操作数的指令,

14、MOV Ri , A ;寄存器寻址 MOV Ri ,Direct ;直接寻址 MOV Ri ,#data ;立即寻址,3.3.1 数据传送类指令,源操作数的内容送入R0或R1指出的内部RAM中。,五、16位数据传送指令,MOV DPTR ,#data16 ;立即寻址 把16位立即数送到数据指针DPTR。 高8位 DPH,低8位 DPL eg: MOV DPTR ,#8000H,3.3.1 数据传送类指令,六、查表指令,1、MOVC A, A+PC ;(A)+PC)A,(A)作为无符号数和PC内容(下一条指令的起始地址)相加后得到一个16位的地址,将该地址的内容 A,2、MOVC A, A+DP

15、TR ;(A)+DPTR)A,(A)作为无符号数和DPTR内容相加后得到一个16位的地址,将该地址的内容 A,3.3.1 数据传送类指令,3.3.1 数据传送类指令,七、累加器A与片外RAM数据传送指令,eg: MOV DPTR ,#0650H ;设(0650H)=20H MOV R0,#0FAH ;(0FAH)=10H MOV P2, #20H MOVX A , R0 ;(20FAH) A MOVX DPTR,A ;(A) 650H单元,八、栈操作指令,1、压栈指令,PUSH Direct ;寄存器间接寻址,eg: (SP)=60H,(A)=30H,(B)=70H,3.3.1 数据传送类指令, 堆栈指针SP+1 SP; 然后把直接地址的内容送到栈指针寻址的内部RAM单元中。,2、弹栈指令,POP Direct ;寄存器间接寻址,eg:(SP)=62H,(62H)=70H,(61H)=30H,3.3.1 数据传送类指令, 堆栈指针SP寻址的内部RAM单元送入直接地址指 出的字节单元中; SP-1 SP,九、字节交换指令内容交换,XCH A , Rn ;寄存器寻址 ,(A)(Rn) XCH A ,Direct ;直接寻址,(A)(direct) XCH A ,Ri ;寄存器间接寻址,(A)(Ri) XCHD A ,Ri ;寄存器间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号