第四章 汇编语言程序设计
- 格式:ppt
- 大小:363.00 KB
- 文档页数:50


第四章 汇编语言程序设计
本章的汇编语言程序设计的主要内容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。在介绍之前,我们还是来学习汇编语言的一些基础知识)
4.1 汇编语言程序设计概述
1、计算机的汇编语言
以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。汇编语言的语句有严格的格式要求)
2、汇编语言的语句格式
MCS-51汇编语言的语句格式表示如下:
[]: []; []
标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。)
操作码:规定语句执行的操作内容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)
分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后
空格( )用于操作码和操作数之间
逗号(,)用于操作数之间,分割两个以上的操作数
. . . .
. . . . . 第四章 汇编语言程序设计
本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。在介绍之前,我们还是来学习汇编语言的一些基础知识)
4.1 汇编语言程序设计概述
1、计算机的汇编语言
以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。汇编语言的语句有严格的格式要求)
2、汇编语言的语句格式
MCS-51汇编语言的语句格式表示如下:
[]: []; []
标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。)
操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)
分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
第四章 汇编语言程序设计(assembly language
programming)
§4.1 汇编语言(assembly language)
一.概述
汇编语言:一种符号语言,它用助记符表示指令的操作码和操作数,用标号或符号代表地址、常量和变量,与机器语言几乎一一对应
汇编语言程序:用汇编语言编写的程序
汇编:把汇编语言源程序翻译成机器语言目标程序的过程
汇编语言源程序 手工汇编或汇编程序 机器语言目标程序
汇编程序:用来完成汇编工作的程序,有
小汇编ASM
宏汇编MASM
动态调试程序DEBUG
二.汇编语言的语句
格式: [名称] 指令助记符 [操作数] [;注释]
带方括号的项有时可没有,注释项完全可以没有
每个部分用空格分开
每行最多可有132个字符,但最好不要超过屏宽80
语句可分成指令性语句和指示性语句(伪指令语句)
指令性语句汇编后可生成机器码
[标号:] 指令助记符 [操作数] [;注释]
指示性语句指示汇编程序处理一些工作
[名称] 伪指令(指示符) [操作数] [;注释]
1.名称(或称标识符)
给指令或存储单元地址起的名字,由字母、数字、字符组成
字母:A~Z ,a~z
数字:0~9
字符:可打印 + - * / = ( ) [ ] 〈 〉 ; . ' ’ ,_ : ?
@ $ &
(非打印 空格 制表符TAB 回车 换行)
(界符: , ; : .( )[ ]〈 〉+ - * / = ? _ @ & $
' ’ 界符用来表示某个标志的结束)
数字不能作名称的第一个字符,圆点 .仅能作第一个字符
保留字不能作标识符($、?是保留字,与其它字符组合除外)
名称最长为31个字符
当名称后跟冒号,表示该名称是其后指令的标号,代表该指令的开始地址,其他指令可以用该标号作为转移地址
当名称不跟冒号,它可能是标号或变量名,伪指令前的名称不跟冒号
汇编语⾔程序设计
第4章 汇编语⾔程序设计§4.1 汇编语⾔的模式
⼀、汇编语⾔源程序的⼀般模式[Name 模块名]
[Title 标题]
[定义宏]
[定义数据段]
[定义附加段]
[定义堆栈段]
定义代码段
源程序结束
中括号括起的部分可以省略,可见在⼀个汇编语⾔源程序中必须要定义代码段,并且必须有源程序结束指令。
⼆、8086汇编语⾔程序的⼀个例⼦Pg90。
§4.2 语句⾏的构成
汇编语⾔中的语句⼀般分为两种类型:指令性语句和指⽰性语句。
指令性语句的格式为:[标号:] 助记符 [操作数1[,操作数2]] [;注释]
指⽰性语句的格式为:[名称] 助记符 [参数1,参数2,……] [;注释]
标号和名称都是编程⼈员根据需要和⼀定的规则任意取的。也可以认为汇编语⾔的语句⾏是由标记和分隔符(空格)构成。
⼀、标记1.IBM宏汇编的字符集
(1)字母
(2)数字符
(3)特殊字符2.界符
⽤于定界⼀个标记的结束或⼀个标记的开始,本⾝具有⼀定的意义。3.常量
出现在汇编语⾔源程序中的固定值称为常量。
(1)数值常量
①⼆进制:以字母B结束。
②⼗进制:以字母D或⽆字母结束。
③⼋进制:以字母Q(或O)结束。④⼗六进制:以字母H结束。
(2)字符常量
指⽤单引号或双引号引起的字符或字符串。4.标识符
由程序员⾃⼰建⽴的字符序列(标号或名称)。⼀个标识符不能超过31个字符,不能以数字开头。5.保留字
汇编语⾔中具有特殊意义的字符序列。6.注释
⼀⾏中分号以后的部分。⽤于对⼀段或⼀⾏程序进⾏说明,便于阅读和理解。
⼆、符号
具有⼀定意义的字符序列。1.寄存器名
2.变量
段属性、偏移属性、类型属性3.标号
段属性、偏移属性、类型属性4.常数
5.其它
三、表达式
由操作数和运算符组合⽽成的序列。1.操作数
(1)⽴即数
(2)寄存器操作数
(3)存储器操作数2.运算符
(1)算术运算符+、-、*、/、MOD(求余)
(2)逻辑运算符AND、OR、NOT、XOR
(3)关系运算符EQ、NE、LT、LE、GT、GE