《第3章-程序设计基础ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第3章-程序设计基础ppt课件(全).ppt(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第3章章 程序设计基础程序设计基础 上海电子信息职业技术学院上海电子信息职业技术学院 何永艳主编何永艳主编 程序设计语言使实现人机互相交换信息(对话)的基本工具,它可分为机器语言、汇编语言和高级语言。单片机的指令系统由111条指令构成。1.机器语言机器语言编写的程序不易阅读,难记、难学。3.1 指令系统基本概念指令系统基本概念3.1.1 编程语言编程语言2.汇编语言 汇编语言是以人们易于理解和记忆的英文名称或缩写形式(助记符)来表示二进制指令。MOV A,#0AH ADD A,#14H 汇编语言必机器语言更易于理解、记忆和交流。用汇编语言编写的程序称为汇编语言程序,或称源程序。把汇编语言程
2、序译成机器语言程序单片机才能执行,这一翻译工作又称为汇编,汇编一般是借助专用软件由单片机自动完成。汇编后的机器语言程序也称为目标程序。用汇编语言编写单片机程序的特点是占用资源少、运行速度快。3.高级语言 高级语言接近于人类自然语言,用高级语言编写的程序与人们通常解题的步骤比较相近,而且不依赖单片机结构和指令系统,是面向过程而独立于机器的通用语言。用高级语言编写的源程序,也需要翻译生成目标程序机器才能执行。高级语言的特点是易学、通用性好、便于移植。3.1.2 汇编语言的指令基本格式汇编语言的指令基本格式 80C51单片机的汇编指令由操作码和操作数两大部分组成,其基本格式表示为 标号:操作码 操作
3、数;注释 1.标号:指令的符号地址 2.操作码:表示指令的操作功能。3.操作数:参加操作的数据或数据地址1).操作数可以是数据,也可以是数据的地址、数据地址的地址或操作数的其他信息。2).操作数可分为目的操作数和源操作数。3).操作数可用二进制数、十进制数或十六进制数表示4).操作数的个数可以是03个5).操作数与操作码之间用空格分隔,操作数与操作数之间用逗号“,”分隔。4.注释:指令功能说明。3.1.3 伪指令伪指令1.伪指令与80C51指令的不同点 1)伪指令是在汇编过程中起作用的指令 2)伪指令不产生可执行的目标代码2.常用的伪指令 1)起始伪指令 ORG(Origin)格式:ORG 1
4、6位地址 ORG伪指令的功能是规定源程序或数据的起始地址。2)结束伪指令 END 格式:END 结束伪指令END的功能是指汇编程序汇编到此结束。3)等值伪指令 EQU(Equate)格式:字符名称 EQU 数据或汇编符号EQU伪指令的功能是将一个常数或特定的符号赋值给规定的字符串。4)数据地址赋值伪指令 DATA格式:字符名称 DATA 表达式功能:将数据地址或代码地址赋予规定的字符名称。5)定义字节伪指令DB(Define Byte)格式:DB 8位二进制数表定义字节伪指令DB的功能是规定从程序存储器的某地址单元开始,存入一组8位二进制常数。6)定义字伪指令DW(Define Word)格式
5、:DW 16位二进制数表 DW伪指令的功能是按字的形式(双字节),把数据存放在存储单元中。7)定义位地址伪指令BIT 格式:字符名称 BIT 位地址 BIT伪指令的功能是将位地址赋予所规定的字符名称。8)表示目前的地址伪指令$伪指令$表示目前的地址,程序计数值不变。3.2 指令分类指令分类单片机的指令系统由111条指令构成,按不同方法分类如下:1.按指令长度分类:可分为1字节、2字节和3字节指令。2.按指令执行时间分类:可分为1机周、2机周和4机周指令。3.按指令功能分类:可分为数据传送类、算术运算类、逻辑运算类、位操作类和控制转移类五大类指令。3.3 指令系统中的常用符号指令系统中的常用符号
6、1.#:立即数符。2.direct:8位直接地址代表内RAM 00H7FH或SFR的80HFFH。3.:间接寻址符。4.addr11:11位目的地址。5.rel:带符号的8位偏移地址。6.bit:位地址。3.4 指令的寻址方式指令的寻址方式3.4.1 寻址的概念寻址的概念把寻找操作数所在单元的地址称之为寻址。3.4.2 寻址方式寻址方式1.立即寻址(Immediate Addressing)如:MOVA,#30H 2.寄存器寻址(Register Addressing)在指令选定的某寄存器中存放或读取操作数,以完成指令规定的操作,称为寄存器寻址。规定的寄存器有:(1)工作寄存器R0R7;(2)
7、累加器A;(3)双字节AB;(4)数据指针DPTR;(5)位累加器Cy如:MOVA,R1 3.寄存器间接寻址(Register Indirect Addressing)由指令指出某一寄存器的内容作为操作数地址的寻址方法,称为寄存器间接寻址。如:MOV A,R1指令的源操作数是寄存器间接寻址。说明:(1)为了区别寄存器寻址和寄存器间接寻址,在寄存器寻址前加“”(2)可作间接寻址的寄存器有R0、R1、DPTR(3)它的寻址范围包括内部RAM低128B,内部高128B(52系列)和外部 RAMR的64KB。4.直接寻址(Direct Addressing)直接给出操作数所在的存储器地址,以供取数或存
8、数的寻址方式称为直接寻址。如:MOV A,40H指令中的源操作数就是直接寻址,40H为操作数的地址。5.相对寻址(Relative Addressing)相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel,而构成实际操作数地址的寻址方法。在使用相对寻址时要注意以下两点:(1)当前PC值是指相对转移指令的存储地址加上该指令的字节数。(2)偏移量rel是有符号的单字节数,以补码表示。目的地址=当前PC值+rel=指令存储地址+指令字节数+rel6.变址寻址将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR和PC是基址寄存器,累加器A是变址寄存器。该类寻址方式主要用于查表操作。7.位寻址(Bit Addressing)位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128位和特殊功能寄存器SFR中的93位进行寻址。例如:SETB3AH,3AH这一位是片内RAM中27H单元中的第3位,现假设27H中的原内容为00H,那么执行此指令后,它就将内部RAM位寻址区中的3AH位置1,所以27H中的内容变为04H。