您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机C51编程21天 第3章
联系方式:单片机开发第三讲:单片机汇编语言1-2北京源智天下科技有限公司联系方式:课程安排•单片机汇编语言概述•伪指令•单片机的指令•51系列单片机指令集•单片机汇编语言的程序结构1-3北京源智天下科技有限公司联系方式:单片机汇编语言概述•单片机汇编语言就是单片机汇编指令的集合,其采用了助记符的形式来描述指令。•优点:–程序代码精炼,执行速度快;–每条指令的执行时间确定,特别适合于对时序要求比较高的场合;–占用内存单元和CPU资源比较少;–和硬件结构和资源密切相关,对于理解单片机的运行和组成很有帮助。•缺点:–指令和具体的硬件密切相关,缺乏通用性;–采用助记符描述的指令还是不够清晰,代码比较难懂;–使用汇编语言编写程序时,必须熟悉单片机的指令系统、寻址方式、寄存器的设置和使用方法,以及系统的硬件资源等。分散了开发人员用于程序结构和功能上的精力;1-4北京源智天下科技有限公司联系方式:伪指令•伪指令,顾名思义,并不是真正的单片机指令。伪指令仅为单片机汇编程序提供某种标记信息,但却是程序中不可缺少的部分。•伪指令与单片机指令的区别如下:–伪指令不能命令CPU执行某种操作,也没有对应的机器代码。–单片机指令能使单片机的CPU执行某种操作,并可以生成对应的机器代码。1-5北京源智天下科技有限公司联系方式:•起始伪指令ORG用于标记一个汇编语言程序的开始。•这里,16位地址便是汇编程序块或数据块存放的起始地址。如果省略ORG伪指令,则单片机程序代码将默认从0000H单元开始存放。[标号:]ORG16位地址使用格式1-6北京源智天下科技有限公司联系方式:•结束伪指令END用于标记一个汇编语言程序的结束。•这里,标号和表达式都可以省略。在汇编语言程序执行时,END之后所写的任何指令都不予以处理。•一个程序只能有一个END伪指令。[标号:]END[表达式]使用格式1-7北京源智天下科技有限公司联系方式:•等值伪指令EQU相当于重命名的概念,其采用一个规定的字符名称来代替一个数或特定的汇编符号。•使用伪指令EQU时必须先赋值,后使用,而不能先使用后赋值。另外,给字符名称所赋的值可以是8位数,也可以是16位数。用EQU定义的字符名称不能和汇编语言的关键字同名。字符名称EQU数据或汇编符号或者字符名称=数据或汇编符号使用格式1-8北京源智天下科技有限公司联系方式:•地址赋值伪指令DATA是用指定的字符名称来代替数据地址或代码地址。•DATA伪指令在程序中常用来定义数据地址。就功能上来说,伪指令DATA与EQU有些类似。区别如下:–EQU伪指令必须先定义后使用,而DATA伪指令则无此限制;–EQU伪指令可以把一个汇编符号赋给一个字符名称,而DATA伪指令则不能;–DATA伪指令可将一个表达式的值赋给一个字符变量,所定义的字符变量也可以出现在表达式中,而EQU定义的字符则不能这样使用。字符名称DATA表达式使用格式1-9北京源智天下科技有限公司联系方式:•字节保存伪指令DB用于在单片机内存中保存数据表,只能对程序存储器进行操作。•其中,8位字节数据表可以是一个或多个字节数据、字符串或表达式。–在数据表中,各项数据用“,”分隔,一个数据项占一个存储单元。–所有的数据项是从标号指定的地址单元开始,将数据表中的字节数据按顺序依次保存。–数据项可以采用十进制、二进制或者十六进制表示。[标号:]DB8位字节数据表使用格式1-10北京源智天下科技有限公司联系方式:•字保存伪指令DW用于在单片机内存中保存双字节数据表,只能对程序存储器进行操作。•其中,16位字数据表可以是一个或多个字节数据、字符串或表达式。–在数据表中,各项数据用“,”分隔,一个数据项占一个存储单元。–所有的数据项是从标号指定的地址单元开始,将数据表中的字节数据按顺序依次保存。–16位数据要占用两个单元的存储器,高8位数据存入低地址字节,低8位数据存入高地址字节。[标号:]ORG16位地址使用格式1-11北京源智天下科技有限公司联系方式:•空间预留伪指令DS用于在单片机内存中划分出一定的存储空间用作备用区域,只能对程序存储器进行操作。•这里,表达式表示了从标号指定的地址单元开始,保留存储单元的个数。[标号:]DS表达式使用格式1-12北京源智天下科技有限公司联系方式:•位变量伪指令BIT用于给位地址定义一个字符名称。•其中,位地址需要参考单片机中的定义,字符名称就是位变量。字符名称BIT位地址使用格式1-13北京源智天下科技有限公司联系方式:单片机的指令•51系列单片机一般都遵循8051指令集。•对于单片机汇编语言来说,一条指令通常由操作码和操作数两部分组成。•单片机的指令按照其对应的机器码的长度,可以分为如下3种:–单字节指令,其对应的机器码只有一个字节,在单片机的程序存储器中占用1个字节的存储单元。单字节指令的功能明确专一,操作简单。–双字节指令,其对应的机器码为两个字节,第一个字节表示操作码,第二个字节表示操作数。双字节指令在单片机的程序存储器中占用两个字节的存储单元。–三字节指令,其对应的机器码为三个字节,第一个字节表示操作码,后二个字节表示操作数。三字节指令在单片机的程序存储器中占用三个字节的存储单元。1-14北京源智天下科技有限公司联系方式:单片机指令的寻址方式•指令的执行是需要操作对象的,单片机指令获取操作对象的方式便是指令的寻址方式。•单片机指令的寻址方式,可以分为如下7种:–立即寻址–直接寻址–寄存器寻址–寄存器间接寻址–变址寻址–相对寻址–位寻址1-15北京源智天下科技有限公司联系方式:立即寻址•立即寻址相当于直接给出操作数,此时的操作数称为立即数。立即数的前面采用标识符“#”来表示,是寻址指令中直接出现的数据。•立即数可以采用不同的表示方式:–十六进制,结尾用字符H来区别;–十进制,结尾用字符D来区别,一般可以省略;–八进制,结尾用字符O来区别;–二进制,结尾用字符B来区别。•在单片机中,立即寻址方式的寻址空间是程序存储器,也就是说立即寻址方式所操作的立即数是存储在指令字节中的。1-16北京源智天下科技有限公司联系方式:直接寻址•直接寻址方式相当于将操作数存放的地址告诉指令,此时为了和立即寻址相区别,地址前没有标识符“#”。•在单片机中,直接寻址方式可寻址如下两类存储空间。–片内RAM的低128个字节单元,其地址为00H~7FH。这样,在这128位地址的直接寻址方式中,00H代表第0位,01H代表第1位,依次类推;–特殊功能寄存器,其直接地址也可以用特殊功能寄存器的符号名称来表示。直接寻址也是访问特殊功能寄存器的唯一方法。1-17北京源智天下科技有限公司联系方式:寄存器寻址•寄存器寻址相当于告诉指令操作数所存放的寄存器,此时,寄存器中的内容作为操作数。•由于寄存器位于单片机CPU的内部,因此采用寄存器寻址的速度相比其他几种寻址方式要快,程序具有较高的运算处理速度。•寄存器寻址可以寻址如下几种:–通用寄存器R0~R7–累加器A–寄存器AB–数据指针DPTR•在指令的操作数位置上指定寄存器的寻址方式。其中,寄存器的内容作为操作数。采用寄存器寻址方式的指令一般都是一个字节的指令。1-18北京源智天下科技有限公司联系方式:寄存器间接寻址•寄存器间接寻址相当于绕了更大的弯,此时数据存放在RAM中,而该RAM的地址放在寄存器中。•这样,通过访问寄存器来获得RAM中操作数的寻址方式便是寄存器间接寻址。•在单片机中,寄存器间接寻址可以访问如下所述的存储空间。–片内RAM的低128个字节单元,此时需要使用R0、R1作为间接寻址的寄存器;–外部RAM,如果采用R0、R1作为间接寻址的寄存器,可寻址256个单元;–外部RAM,如果采用16位的DPTR作为间接寻址的寄存器,可寻址外部RAM的完整64KB地址空间。•在寄存器间接寻址的指令中,寻址的寄存器前需要加“@”标识符。这样可以和寄存器寻址相区别。1-19北京源智天下科技有限公司联系方式:变址寻址•变址寻址提供了16位地址的寻址能力,其采用基址寄存器加变址寄存器方式来寻址。其中,基址寄存器为DPTR或PC,变址寄存器为累加器A,用于存放地址偏移量。•在单片机中,变址寻址方式一般常用于访问程序储存器中的数据表格。•变址寻址共有两种形式:–MOVA,@A+DPTR:其功能是将累加器A的内容与数据指针DPTR的内容相加形成操作数的地址,即程序储存器的16位地址。该指令取此地址中的内容送入累加器A中,指令的操作码为93H,如图3-7所示。–MOVA,@A+PC:其功能是将累加器A的内容与PC的内容相加形成操作数的地址,即程序储存器的16位地址。该指令取此地址中的内容送入累加器A中,其操作码为83H。1-20北京源智天下科技有限公司联系方式:相对寻址•相对寻址是根据指定地址的偏移量,然后从当前PC值跳转到偏移量所指向的地址的方式。•这里,地址偏移量为带符号的8位二进制数,其取值范围为-128~+127。•因此,相对寻址可以寻址当前PC的-128~127之间的某段程序存储器。1-21北京源智天下科技有限公司联系方式:位寻址•51系列单片机一般都遵循8051指令集。•对于单片机汇编语言来说,一条指令通常由操作码和操作数两部分组成。•单片机的指令按照其对应的机器码的长度,可以分为如下3种:–单字节指令,其对应的机器码只有一个字节,在单片机的程序存储器中占用1个字节的存储单元。单字节指令的功能明确专一,操作简单。–双字节指令,其对应的机器码为两个字节,第一个字节表示操作码,第二个字节表示操作数。双字节指令在单片机的程序存储器中占用两个字节的存储单元。–三字节指令,其对应的机器码为三个字节,第一个字节表示操作码,后二个字节表示操作数。三字节指令在单片机的程序存储器中占用三个字节的存储单元。1-22北京源智天下科技有限公司联系方式:位寻址•位寻址是特别为位操作区域提供的寻址方式,在指令中直接给出位地址即可。•51系列单片机中,可以位寻址的区域如下:–片内RAM的20H~2FH单元,共16×8=128位。可直接使用位地址来表示,例如,20H单元的0~7位的位地址为00H~07H。也可以使用RAM地址加位序号表示,例如2AH.1表示2AH单元的D1位。–可位寻址的特殊功能寄存器相应位,这些位均有特定的名称,因此可以直接采用位名称来表示,也可以采用寄存器符号加位序号表示,例如PSW.3表示PSW寄存器中的D3位。1-23北京源智天下科技有限公司联系方式:单片机的指令集•51系列单片机的指令系统提供了111条指令。•按照指令所执行的操作可以细分为如下5类:–数据传送类,共29条指令;–算术运算类
本文标题:单片机C51编程21天 第3章
链接地址:https://www.777doc.com/doc-3974985 .html