单片机原理及应用汇编语言程序设计简介.pptx
文本预览下载声明
单片机原理及应用第1页,共78页。第4章 汇编语言程序设计简介 4.1伪指令 4.2汇编语言程序设计 第2页,共78页。4.1伪指令 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。它不是单片机执行的指令,所以没有对应的可执行目标码,汇编后产生的目标程序中不会再出现伪指令。一、起始地址设定伪指令 ORG格式为:ORG 表达式该指令的功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址。表达式通常为16进制地址,也可以是已定义的标号地址。 第3页,共78页。 ORG 8000HSTART:MOV A,#30H … … 此时规定该段程序的机器码从地址8000H单元开始存放。 在每一个汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG伪指令,则该程序段从0000H单元开始存放。在一个源程序中,可以多次使用ORG伪指令规定不同程序段或数据段存放的起始地址,但要求地址值由小到大依序排列,不允许空间重叠。第4页,共78页。二、汇编结束伪指令 END格式为:END该指令的功能是结束汇编。汇编程序遇到END伪指令后即结束汇编。处于END之后的程序,汇编程序将不处理。第5页,共78页。三、字节数据定义伪指令 DB[标号:] DB 字节数据表功能是从标号指定的地址开始,在ROM中定义字节数据。字节数据表可以是一个或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据根据从左到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单元。例如: ORG 9000HDATA1: DB 73H, 01H, 90HDATA2: DB 02H DB ‘ABCD’,3*25,01H.’1’ 11个数据从9000H单元连续存放。 第6页,共78页。四、字数据定义伪指令 DW[标号:] DW 字数据表功能是从标号指定的地址单元开始,在程序存储器中定义字数据。该伪指令将字或字表中的数据根据从左到右的顺序依次存放在指定的存储单元中。应特别注意:16位的二进制数,高8位存放在低地址单元,低8位存放在高地址单元。例如: ORG 1400HDATA:DW 324AH,3CH … … 汇编后,(1400H)=32H,(1401H)= 4AH,(1402H)=00H,(1403H)=3CH。第7页,共78页。 在定义中使用dup重复操作符格式如下: N dup (参数表)例如: ZERO: DB 3DUP(0,0)BUFFER: DB ‘AB’ , 2DUP(‘BA’ , 3DUP(1))第8页,共78页。五、位地址符号定义伪指令 BIT格式为:符号名BIT位地址表达式 功能是将位地址赋给指定的符号名。其中,位地址表达式可以是绝对地址,也可以是符号地址。例如: ST BIT P1.0将P1.0的位地址赋给符号名ST,在其后的编程中就可以用ST来代替P1.0。第9页,共78页。六、赋值伪指令 EQU符号名 EQU 表达式功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名。例如: LEN EQU 10 BLOCK EQU 22H MOV R7,#LEN MOV R0,#BLOCK命令执行后:R7=? R0=? 10 22H第10页,共78页。 汇编语言的语句格式 语句行由四个字段组成 : [标号:]操作码 [操作数] [;注释] 括号内的部分可以根据实际情况取舍。每个字段之间要用分隔符分隔,可以用作分隔符的符号有空格、冒号、逗号、分号等。如:LOOP:MOV A,#7FH ;A←7FH第11页,共78页。一、标号标号是语句地址的标志符号,用于引导对该语句的非顺序访问。有关标号的规定为: 标号由1~8个ASCII字符组成。第一个字符必须是字母,其 余字符可以是字母、数字或其他特定字符; 不能使用该汇编语言已经定义了的符号作为标号。如指令助记 符、寄存器符号名称等; 标号后边必须跟冒号。二、操作码 操作码用于规定语句执行的操作。它是汇编语句中唯一不能空缺的部分。它由指令助记符表示。 第12页,共78页。三、操作数 操作数用于给指令的操作提供数据或地址。在一条汇编语句中操作数可能是空缺的,也可能包括一项,还可能包括两项或三项。各操作数间以逗号分隔。操作数字段的内容可能包括以下几种情况:(1)工作寄存器名;(2)特殊功能寄存器名;(3)标号名;(4)常数;(5)符号“$”,表示程序计数器PC的当前值;(6)表达式。第13页,共78页。四、注释 注释不属于汇编语句的功能部分,它只是对语句的说明。注释字段可以增加程序的可读性,有助于编程人员的阅读和维护。注释字段必须以分号“;”开头,长度不限,当一行书写不下时,可以换行接
显示全部