1 / 18

第三章 单片机的指令系统

第三章 单片机的指令系统. 3.1 单片机指令系统基础 3.2 单片机指令系统的分类与说明 3.3 单片机指令的应用例子. 3 . 1 单片机指令系统基础. 3.1.1 汇编指令的格式 由助记符、目的操作数、源操作数组成,格式如下: (标号:)操作码助记符 目的操作数,源操作数 (;注释)   标号可以是以英文字母开头的字母、数字和某些特殊符号的序列。某条指令一旦赋于标号,则在其它指令的操作数中就可以引用该标号作为引用地址。. 3.1.1 汇编指令的格式. 3.1.1 汇编指令的格式   由助记符、目的操作数、源操作数组成,格式如下:

clovis
Download Presentation

第三章 单片机的指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 单片机的指令系统 3.1 单片机指令系统基础 3.2 单片机指令系统的分类与说明 3.3 单片机指令的应用例子

  2. 3.1单片机指令系统基础 3.1.1汇编指令的格式 由助记符、目的操作数、源操作数组成,格式如下: (标号:)操作码助记符 目的操作数,源操作数 (;注释)   标号可以是以英文字母开头的字母、数字和某些特殊符号的序列。某条指令一旦赋于标号,则在其它指令的操作数中就可以引用该标号作为引用地址。

  3. 3.1.1汇编指令的格式 3.1.1汇编指令的格式   由助记符、目的操作数、源操作数组成,格式如下: (标号:)操作码助记符 目的操作数,源操作数 (;注释)   操作数是指指令操作所需的数据、地址或符号(标号)如: MOV A,#0F4H;把数F4H送入累加器A中 MOV A,80H;把80H中的数送入累加器A中 INC A;A中的数加1 CJNE A,#40H,LOOP1 ;A中数与数40H比较,不等时 ;程序转到LOOP1 DIV AB ;A中内容被B中内容除,商在A ;中,余数在B中。

  4. 3.1.2指令代码格式 什么是指令代码? 指令代码是程序指令的二进制数字表示方法。有单字节指令、双字节指令和三字节指令,第一个字节代码为操作码,表达了指令的操作功能,第二三个字节则为操作数或是地址、立即数。   汇编指令与指令代码例子:

  5. 3.1.3汇编指令中的符号约定 Rn(0-7):当前选中组的8个工作寄存器R0-R7 Ri(I=0,1): 当前选中组用于间接寻址的两个工作寄存 器R0、R1 Direct: 8位直接地址,可以是RAM单元地址(00H-7FH) 或特殊功能寄存器(SFR)地址(80H-FFH) #data: 8位常数 #data16: 16位常数 addr16: 16位地址 addr11: 11位地址 rel: 8位偏移地址,表示相对跳转的偏移字节, 按下一条指令第一个字节计算, 在-128——+127取值范围内。

  6. 3.1.3汇编指令中的符号约定 DPTR:16位数据指针 Bit: 位地址,内部RAM20H—2F中可寻址位和11个SFR 中的可寻址位 A: 累加器 B: B寄存器,用于乘法等指令中。 C: 进位标志或进位位,或位操作指令中的位累加器 @: 间接寻址寄存器的前缀 /: 位操作的取反前缀

  7. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 1.寄存器寻址方式 (1)单片机中的所有工作寄存器R0-R7及SFR都是可寻址寄存器,这些寄存器都以寄存器名作指令操作数 如:MOV A, R0 MOV SP,#70H (2)在寄存器寻址方式的操作指令中,寄存器内容作为操作数,可以是源操作数或目的操作数 如: MOV R1,#10H MOV A, R1

  8. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 2.直接寻址方式 (1)直接寻址的空间有片内数据存储器的直接地址direct,它包括00H—7FH中的数据区及80H—FFH中的SFR。 (2)直接寻址方式的操作指令直接把地址作为操作数来运行,既可作为源操作数,也可作为目的操作数 如: MOV 50H,60H MOV DPH,40H INC 60H

  9. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 3.间接寻址方式 (1)间接寻址的地址空间有片内数据存储器的00H—FFH和片外数据存储器的0000H—FFFFH。 (2)间接寻址的寄存器有Ri和DPTR,间接寻址时前面加@符号 (3)间接寻址时,寄存器中的内容是操作数的地址 如: MOV R0,#30H MOV A,@R0 MOV DPTR,#0FFFH MOVX A,@DPTR

  10. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 4.位寻址方式 (1)位寻址的位地址在RAM的20H—2FH单元的128个位和SFR中可位寻址的位单元 (2)进位位C作为位操作的位累加器 (3)在位寻址操作中,位单元可以使用地址编号或位地址名, 如: SETB TR0 CLR 00H ANL C,5FH ;将5FH中的位状态与进位位              ;C相与,结果在C中

  11. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 5.立即寻址方式 (1)常数用来参与指令操作,一般用#标记作前缀 (2)立即数在寻址操作中只能作源操作数 如: MOV A,#30H MOV DPTR,#2FFFH ANL A,#0F4H

  12. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 6.基址变址寻址方式 (1)基址变址寻址是一种间接寻址方式,PC和DPTR可作为基址地址,A作为变量地址,共有三条指令: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR

  13. 3.1.4指令系统的寻址方式 指令系统的寻址方式分七种方式: 7.相对寻址方式 (1)相对寻址中,相对地址rel是一个8位的地址偏移量,是相对于转移指令下一条指令第一个代码的地址偏移量, 为-128—+127 (2)使用中应注意rel的范围不要超出,如: JZ LOOP DJNE R0,DISPLAY

  14. 3.2 指令系统分类与说明 3.2.1 指令的分类 按指令的操作功能,80C51单片机由数据传送、算术操作、逻辑操作、程序转移和位操作指令组成,共有111条指令。 3.2.2 指令的图解 指令图解的标记符号说明: 箭头:表示操作数从源数到目的操作数,双箭头表示源操 作数与目的操作数可互换,箭头上标有指令助记符 圆框:为累加器A或位累加器C 矩形框:为指令操作数的空间 虚线矩形框:为立即数#data 指令的分类图解

  15. 3.2 指令系统分类与说明 3.2.3指令系统速解表

  16. 3.2 指令系统分类与说明 例1: 1毫秒延时程序 DL1MS: MOV R6,#14H ; R6赋初值20(十进制) DL1: MOV R7,#19H ; R7赋初值25(十进制) DL2: DJNZ R7, DL2 ; R7减1不为零转DL2 DJNZ R6,DL1 ; R6减1不为零转DL1 RET ; 子程序结束

  17. 3.3 指令的应用例子 例2 :七段LED数码管显示程序 指令的应用例子连接 练习与思考 1. 请区别汇编指令、指令代码、指令周期、指令长度。 2. 80C51指令系统有哪些寻址方式,相应的空间在何处? 3. 片内RAM20H-2FH的128个位地址与直接地址00H-7FH形式完全相同,如何在指令中区分出位寻址操作和直接地址操作? 4. 什么是源操作数,什么是目的操作数?通常在指令中如何区别?

  18. 3.3 指令的应用例子 例2 :七段LED数码管显示程序 指令的应用例子连接 练习与思考 5. 查表指令是在什么空间上的寻址操作? 6. 80C51中有LJMP、LCALL,为何还设置了AJMP、ACALL? 7. 查表指令中使用了基址加变址的寻址方式,请问DPTR、PC分别代表什么地址? 8. 比较不等转移指令CJNE有哪些扩展功能?

More Related