当前位置:
文档之家› PIC汇编语言程序设计基础解析
PIC汇编语言程序设计基础解析
返回
4.2 汇编语言的语句格式
• 为了使编译器能够顺利的对用户编制的汇编语言源程序进 行代码转换,在编制源程序时必须依照汇编器的约定进行 书写。 • microchip公司提供的MPASM汇编器其汇编语言格式的一 般格式由4个字段组成,这4个段不都是必要的,但顺序不 能颠倒。 标 号 操作码 操作数 ;注 释
第四章 PIC汇编语言程序设计基础
• • • • • • • • • • • • • 4.0 序论 4.1 MPASM汇编器的使用 4.2 汇编语言的语句格式 4.3 常用伪指令 4.4 程序格式和程序流程图 4.5 RAM数据存储器的体选寻址问题 4.6 顺序程序结构 4.7 分支程序结构 4.8 循环程序结构 4.9 子程序结构 4.10 程序的跨页跳转和跨页调用问题 4.11 延时程序设计 4.12 查表程序设计
(四)注释
• 注释部分用于对指令进行注解和说明。虽然注释可有可无, 但对于一个编程者来说,为了便于程序的阅读、交流、修 改和调试,在一些关键的语句上加标注释是一种好的编程 习惯;
Hale Waihona Puke • 注释由半角的引号“;”开始,它不是程序的功能部分,编 译器对该部分不做任何处理。
返回
4.3 常用伪指令
• 所谓伪指令就是“假指令”的意思,它不是为CPU识别的 指令、没有对应的机器码。它是为编译器服务的指令,如 确定指令的存储地址,为标号、字符串赋值等。 • 伪指令的使用使程序在书写、阅读上更方便。对于一些没 有说明意义的数字、RAM地址可以通过伪指令换为有意义 的字符来取代,使程序具有很好的可读性。如:在PIC的 指令中不能直接引用寄存器的名字取代地址,只能通过 EQU伪指令定义后引用其寄存器的符号。
3. 4.
5.
一个标号在系统中只能定义一次。
(二)操作码
1. 2. 在汇编语言语言源程序中,尽管其它3个字段有时是空的, 但操作码字段无论在何时都不能是空的。 操作码是指令的助记符,是指令功能的英文缩写,表示指 令的操作类型、性质,是汇编语言语句中的“关键字”, 因此是不能省略的。 汇编器将操作码进行汇编时,将其与一个预先建立的操作 码索引表相比较找出对应的机器码取而代之,这叫“代真” 当操作码前无标号时,操作码前至少要留有一个空格以防 汇编器将其误认为标号。
2.
3.
4.
尽管C语言已经成为各类单片机重要的开发手段,但是 汇编语言永远不会被淘汰,只有将汇编语言和C语言有 机的结合起来才能高效的实现应用软件的设计。
4.0 序论
• CPU所能识别的是由 “0”或“1”组成的二进制的 “机器语 言”。如: “SLEEP”指令的机器语言: “00000001100011” 。但机器语言不便于人们编写、阅读。 • 汇编语言是对机器语言的改进。使用了便于记忆、阅读的符 号、字符串来表示指令的操作码、操作数和操作数地址。是 一种符号语言,它与机器语言一一对应。 • 汇编语言CPU是不能识别的,因此必须使用一种工具将其 “翻译”为机器语言,这个工具叫“汇编器”或“汇编程 序”。使用“汇编器”或“汇编程序”帮助将汇编语言的源 程序转换为机器语言,这一过程称之为“汇编”。
( label ) ( opcode ) ( operand ) (commend)
1. 2.
标号必须从左面第1列开始,后面至少用1个空格与操 作码隔离(注意:标号后面没有冒号); 在无标号时,操作码前至少要保留一个或一个以 上的空格(建议使用“Tab”键分割标号列);
3.
操作码与操作数之间至少要保留一个或一个以上的 空格,如果有两个操作数时两者之间要由逗号(半 角)隔开(建议使用“Tab”键分割) ; 注释由分号(英文半角)引导,在标号、操作码和 操作数之后。标号也可以单独占一行单必需由分号 引导。
• 汇编语言的使用为我们提供了一种可以不涉及机器指令码 和实际存储器地址的便捷条件。 但是要想正确使用汇编语言编程必须了解“编译器” 所约定的内容,掌握如:语句格式、标号格式、数据进制 的表示方法、伪指令和汇编器的使用等等。 • 在下面的章节中将介绍MPASM编译器的使用、汇编语言 的语句格式、几种常用伪指令、程序格式和流程图。
4.
(一)标号
1.
2.
在指令前的标号实际上就是该指令的符号地址。
并不是每条指令都需加标号的,只有那些欲被其它语句引 用的语句之前才需要加标号。子程序第一条语句的标号实 际上就是该子程序的名称; 标号可以单独作为作为一行; 标号的第1个字符必须由字母或下划线 “_” 开始,并且从 每一行的第1列开始写。标号最多可由32个字母、数字和 其它符号组成。标号不能使用指令的助记符、寄存器名、 或其它系统中已有固定用途的字符串(系统的保留字)。
• 伪指令只在汇编的过程中进行一些辅助工作,是程序设计 人员向编译器发出的控制命令,告诉汇编器如何完成汇编 过程和一些规定的操作,以及控制汇编的输入、输出和数 据定位等。一旦汇编完成,伪指令就不存在了。
返回
4.1 MPASM汇编器的使用
• MPASM汇编器是美国microchip公司为其单片机开发、应 用者设计的一套语言工具软件。它不仅能将汇编语言源程 序“翻译”成机器语言,还能检查源程序中的语法错误或 格式错误并向用户给出题示。 • MPASM汇编器有两种版本: ① DOS版本的 MPASM.EXE; ② WINDOWS的 MPASMWIN.EXE。 有关如何使用MPASM将在后面相关章节中介绍。
为什么要学习汇编语言
1. 汇编语言是唯一一种面向机器的、最贴近及其硬件的编 程语言。学习汇编语言能够帮助深入了解单片机的构成、 工作过程和原理。因此特别适合初学阶段的学习; 汇编语言程序可以最有效的节省CPU的运行时间和数据 存储空间,代码使用效率最高。在简单的控制场合是一 种最佳选择; 由于汇编语言是一种直接控制CPU的指令语言,所以可 以产生精确的定时信号,这时其它语言所无法实现的;
3. 4.
(三)操作数
• 操作数是指令操作的对象,是数据或数据的地址。它们 可以使用数值或标号形式表示。 • 其中,数值可以使用二进制、八进制、十进制和十六进 制或ASCII字符值(参见讲义88页表4.2);而标号可以 是在此前定义或赋值的代表数字或地址标号或字符串。 • 如果操作数有两个,中间应由逗号隔开。