PIC单片机原理及应用(第六章)1.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:61 大小:210KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

PIC单片机原理及应用(第六章)1.ppt

PIC单片机原理及应用(第六章)1.ppt

预览

免费试读已结束,剩余 51 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PIC单片机指令系统和其它单片机一样,是较为低级的语言系统,是一套控制和指挥CPU工作的编码,即机器语言。单片机只能识别和执行由二进制数组成的机器语言,然而,这样一种二进制代码的机器语言是很难为人们直接理解和分析。为了能较好表达人们的设计思路,便于记忆和使用,人们在低级语言之上设计出一种新的符号语言,即汇编语言。汇编语言是机器语言的符号表达。根据指令的功能和作用,只有操作码是必须存在的,它主要决定了指令的操作性质。而其它部分是指令语句的重要补充和说明,有时可以缺省。标号位于指令助记符前面,它一般是用于表示指令所在的地址,例如表示主程序或子程序的起始地址、转移语句的入口地址等。在程序汇编时,将该指令机器码所在程序存储器中的地址赋值给标号。标号并不是指令的必须部分,只有那些欲被其他语句引用的指令之前,才必须附加标号。标号不一定和语句同行,可以单独在语句上方作为一行使用。标号最多可以由32个字母、数字和其它一些字符组成,但第一个字符必须是字母或下划线。标号不能用系统保留字,即系统禁用指令助记符、寄存器名、标志符等作为标号,如:ADD、PCLATH等。一个标号只能表示一个地址,不允许多个地址用一个标号重复定义。标号的定义和引用必须一致,其中的大小写可以混写但必须相同。标号必须顶格书写,结束不用冒号。操作码决定着指令的操作类型和操作性质,是汇编语言语句中的核心要素,每一条汇编指令都不可缺少,而其它三部分有些指令可以缺省。操作码所对应的指令助记符,其中的符号大小写可以混写,而不会影响操作码的含意,这一点和标号、操作数符号变量的表达方式是有本质区别。指令助记符不能顶格书写,当前面没有标号时,必须至少保留一个空格。操作码核心助记符部分比较简单,初学者必须熟悉复合助记符部分的功能。在PIC汇编语言语句中,操作数的形式和内容最为丰富,它是指令助记符操作的对象,一般以数据或地址的形式出现,也可以用符号变量所表示的数据或地址。使用操作数的要点是:各种进制168的表示形式注释内容用分号引出,是汇编语言语句功能的一种补充说明,主要是便于人们阅读、分析、修改和调试程序。用分号(半角)引出注释内容,可以紧跟指令之后,也可以独立一行或多行书写,但每一行均需由分号引出。注释内容可以英文书写,也能用中文书写(来源于文本编辑内容)。各种单片机的汇编程序除了指令系统语句(PIC16F877共35条)以外,一般都还定义许多非正式指令的语句,即伪指令。大多数伪指令汇编时并不产生机器码,仅为源程序提供汇编控制信息。格式:ORGnnnn说明:ORG伪指令指出紧跟在该伪指令后的机器码指令的汇编地址,即经汇编后生成的机器码目标程序或数据块在单片机程序存储器中的起始存放地址。[例题6-1]以下三个程序段的含义是一样的。;;程序段1;ORG0008H;常数0008HSTARTMOVLW00H;;程序段2;ABCEQU0008HORGABC;标识符ABC即0008HSTARTMOVLW00H;;程序段3;ABCEQU0004HORGABC+4;代数表达式即0008HSTARTMOVLW00H格式:符号名EQUnn说明:EQU伪指令几乎每一个程序中都用到,其操作含意是使EQU两端的值相等。一般在PIC的程序设计中,原则上每次遇到新的符号参数,都必须在前面定义符号名的初始数值或存储器地址。符号名一旦被EQU赋值,其值便不能被再重新定义。这里的符号名,既可以是PIC中的特殊功能寄存器、一个常数,或者是表示一个通用数据存储器地址。实际上对于伪指令:ABCEQU20H,其中ABC既可以认为是符号变量,因为ABC可以代表20H地址;又可以认为是符号常量,因为ABC可以代表立即数20H。所以对于一个定义的符号量,应结合引用的指令进行分析才能真正确定符号量的类型。【例题6-2】正确区别符号变量和符号常量之间的关系。ABCEQU20H;定义符号量ABCORG0000HNOPMOVLW77HMOVWF20HMOVLW88HMOVFABC,0;ABC为符号变量MOVLWABC;ABC为符号常量NOPEND在符号名定义和引用过程中,必须保证大小写属性的一致,注意不能混合使用。如果有定义:ABCEQU20H在引用符号名ABC时,不能改变其大小写的属性,即Abc、aBC或ABc与ABC是不一样的,在汇编时均会发生出错信息。格式:END说明:END伪指令表示汇编语言源程序(*.ASM)的结束,MPASM汇编器汇编时遇到END就认为程序已结束,对其后的程序段不再进行汇编。格式:LIST[可选项,可选项,]说明:LIST伪指令