80C51单片机汇编语言程序设计(新).ppt
《80C51单片机汇编语言程序设计(新).ppt》由会员分享,可在线阅读,更多相关《80C51单片机汇编语言程序设计(新).ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理与应用单片机原理与应用Principle&Application of MCUPrinciple&Application of MCU第第4 4章章 80C5180C51单片机汇编语言程序设计单片机汇编语言程序设计1 1教学内容及要求教学内容及要求n n教学内容教学内容教学内容教学内容n n汇编语言程序的基本结构形式、子程序结构形式汇编语言程序的基本结构形式、子程序结构形式汇编语言程序的基本结构形式、子程序结构形式汇编语言程序的基本结构形式、子程序结构形式n n80C5180C5180C5180C51单片机汇编语言伪指令单片机汇编语言伪指令单片机汇编语言伪指令单片机汇编语言伪指令n
2、n80C5180C5180C5180C51单片机汇编语言程序设计举例单片机汇编语言程序设计举例单片机汇编语言程序设计举例单片机汇编语言程序设计举例n n教学要求教学要求教学要求教学要求n n掌握顺序结构程序、分支程序、循环程序和子程序等掌握顺序结构程序、分支程序、循环程序和子程序等掌握顺序结构程序、分支程序、循环程序和子程序等掌握顺序结构程序、分支程序、循环程序和子程序等结构程序的设计等结构程序的设计等结构程序的设计等结构程序的设计等n n熟悉单片机汇编程序常用的伪指令熟悉单片机汇编程序常用的伪指令熟悉单片机汇编程序常用的伪指令熟悉单片机汇编程序常用的伪指令n n了解汇编语言程序的格式了解汇编
3、语言程序的格式了解汇编语言程序的格式了解汇编语言程序的格式2 2 2 2汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编3 3 3 3机器机器编辑编辑交叉交叉汇编汇编串行传送串行传送4 4 4 4地址地址地址地址机器码机器码机器码机器码标号标号标号标号助记符指令助记符指令助记符指令助记符指令80008000800080007820782078207820SORT:SORT:SORT:SORT:MOV R0,#20HMOV R0,#20HMOV R0,#20HMOV R0,#20H80028002800280027F077F077F077F07MOV R7,#07HMOV R7,#07HMO
4、V R7,#07HMOV R7,#07H*.ASM*.ASM编辑、汇编编辑、汇编n n编辑:编辑:编辑:编辑:n n编写编写编写编写程序的过程称为编辑。程序的过程称为编辑。程序的过程称为编辑。程序的过程称为编辑。n n机器编辑机器编辑机器编辑机器编辑指借助于指借助于指借助于指借助于微型机微型机微型机微型机进行单片机的程序设计,通常都是使用进行单片机的程序设计,通常都是使用进行单片机的程序设计,通常都是使用进行单片机的程序设计,通常都是使用编编编编辑软件辑软件辑软件辑软件进行源程序的编辑。进行源程序的编辑。进行源程序的编辑。进行源程序的编辑。n n编辑完成后,生成一个由汇编指令和伪指令构成的扩展
5、名为编辑完成后,生成一个由汇编指令和伪指令构成的扩展名为编辑完成后,生成一个由汇编指令和伪指令构成的扩展名为编辑完成后,生成一个由汇编指令和伪指令构成的扩展名为”.ASM.ASM.ASM.ASM”的的的的ASCIIASCIIASCIIASCII码文件。码文件。码文件。码文件。n n汇编:汇编:汇编:汇编:n n汇编语言源程序汇编语言源程序汇编语言源程序汇编语言源程序不能在单片机中直接执行,必须将其不能在单片机中直接执行,必须将其不能在单片机中直接执行,必须将其不能在单片机中直接执行,必须将其“翻译翻译翻译翻译”为为为为用二进制代码(机器语言)表示的用二进制代码(机器语言)表示的用二进制代码(机
6、器语言)表示的用二进制代码(机器语言)表示的目标程序目标程序目标程序目标程序才能执行。这个才能执行。这个才能执行。这个才能执行。这个“翻翻翻翻译译译译”过程称为汇编。过程称为汇编。过程称为汇编。过程称为汇编。n n机器汇编机器汇编机器汇编机器汇编指由指由指由指由计算机计算机计算机计算机通过通过通过通过汇编程序汇编程序汇编程序汇编程序完成从完成从完成从完成从汇编语言源程序汇编语言源程序汇编语言源程序汇编语言源程序到到到到机器机器机器机器语言目标程序语言目标程序语言目标程序语言目标程序的的的的“翻译翻译翻译翻译”工作。工作。工作。工作。n n交叉汇编交叉汇编交叉汇编交叉汇编指使用指使用指使用指使用
7、一种计算机一种计算机一种计算机一种计算机(PC)(PC)(PC)(PC)的汇编程序为另一种计算机的汇编程序为另一种计算机的汇编程序为另一种计算机的汇编程序为另一种计算机(单片单片单片单片机机机机)的源程序进行汇编的源程序进行汇编的源程序进行汇编的源程序进行汇编n n即运行汇编程序进行汇编的是一种计算机,而汇编得到的目标程序是即运行汇编程序进行汇编的是一种计算机,而汇编得到的目标程序是即运行汇编程序进行汇编的是一种计算机,而汇编得到的目标程序是即运行汇编程序进行汇编的是一种计算机,而汇编得到的目标程序是另一种计算机用的。另一种计算机用的。另一种计算机用的。另一种计算机用的。5 5 5 580C5
8、180C51单片机汇编语言伪指令单片机汇编语言伪指令n n汇编时,源程序须向汇编程序发出一些指示信息,协助完成汇编时,源程序须向汇编程序发出一些指示信息,协助完成汇编时,源程序须向汇编程序发出一些指示信息,协助完成汇编时,源程序须向汇编程序发出一些指示信息,协助完成汇编工作,这一工作是由伪指令来完成的。汇编工作,这一工作是由伪指令来完成的。汇编工作,这一工作是由伪指令来完成的。汇编工作,这一工作是由伪指令来完成的。n n汇编起始地址命令汇编起始地址命令汇编起始地址命令汇编起始地址命令ORG(Origin)ORG(Origin)ORG(Origin)ORG(Origin)n n定义字节命令定义字
9、节命令定义字节命令定义字节命令DB(Define Byte)DB(Define Byte)DB(Define Byte)DB(Define Byte)n n定义数据字命令定义数据字命令定义数据字命令定义数据字命令DW(Define Word)DW(Define Word)DW(Define Word)DW(Define Word)n n预留存储区命令预留存储区命令预留存储区命令预留存储区命令DS(Define Storage)DS(Define Storage)DS(Define Storage)DS(Define Storage)n n位定义命令位定义命令位定义命令位定义命令BITBITBI
10、TBITn n赋值命令赋值命令赋值命令赋值命令EQU(Equate)EQU(Equate)EQU(Equate)EQU(Equate)n n数据地址赋值伪指令数据地址赋值伪指令数据地址赋值伪指令数据地址赋值伪指令DATADATADATADATAn n汇编终止命令汇编终止命令汇编终止命令汇编终止命令END(End of assembly)END(End of assembly)END(End of assembly)END(End of assembly)n n注注注注意意意意!伪伪伪伪指指指指令令令令仅仅仅仅供供供供汇汇汇汇编编编编程程程程序序序序将将将将源源源源程程程程序序序序翻翻翻翻译译译
11、译成成成成目目目目标标标标程程程程序序序序,本本本本身身身身并并并并不形成机器码。不形成机器码。不形成机器码。不形成机器码。6 6 6 6汇编起始地址命令汇编起始地址命令ORG(Origin)ORG(Origin)n n规定程序或数据的起始存放地址。规定程序或数据的起始存放地址。规定程序或数据的起始存放地址。规定程序或数据的起始存放地址。n n出现在每段源程序或数据块的开始出现在每段源程序或数据块的开始出现在每段源程序或数据块的开始出现在每段源程序或数据块的开始n n 项是项是项是项是16161616位绝对地址位绝对地址位绝对地址位绝对地址,或者标号,或者表达式。,或者标号,或者表达式。,或者
12、标号,或者表达式。,或者标号,或者表达式。n n在一个汇编语言源程序中允许使用多条定位伪指令,但其在一个汇编语言源程序中允许使用多条定位伪指令,但其在一个汇编语言源程序中允许使用多条定位伪指令,但其在一个汇编语言源程序中允许使用多条定位伪指令,但其值应从小到大,并与前面的值应从小到大,并与前面的值应从小到大,并与前面的值应从小到大,并与前面的存放地址不重叠存放地址不重叠存放地址不重叠存放地址不重叠。n n如果程序的开始不放如果程序的开始不放如果程序的开始不放如果程序的开始不放ORGORGORGORG,则汇编程序将从,则汇编程序将从,则汇编程序将从,则汇编程序将从0000H0000H0000H0
13、000H单元单元单元单元开始开始开始开始放目标程序代码。放目标程序代码。放目标程序代码。放目标程序代码。ORG ORG ORG ORG 7 7 7 7ORG 0000HORG 0000HORG 0000HORG 0000H;从从从从0000H0000H0000H0000H单元开始存放下面的指令单元开始存放下面的指令单元开始存放下面的指令单元开始存放下面的指令LJMP 0030HLJMP 0030HLJMP 0030HLJMP 0030HORG 0030HORG 0030HORG 0030HORG 0030H;从从从从0030H0030H0030H0030H单元开始存放下面的指令单元开始存放下面
14、的指令单元开始存放下面的指令单元开始存放下面的指令MAIN:MAIN:MAIN:MAIN:MOV SP,#50HMOV SP,#50HMOV SP,#50HMOV SP,#50HORG 0040HORG 0040HORG 0040HORG 0040H;从从从从0040H0040H0040H0040H单元开始存放下面的数据单元开始存放下面的数据单元开始存放下面的数据单元开始存放下面的数据TABTABTABTAB:DB 23,89DB 23,89DB 23,89DB 23,89定义字节命令定义字节命令DB(Define Byte)DB(Define Byte)n n在程序存储器中在程序存储器中定义
15、字节定义字节数据数据。n nXnXnXnXn可可可可以以以以是是是是一一一一字字字字节节节节常常常常数数数数;用用用用双双双双引引引引号号号号或或或或者者者者单单单单引引引引号号号号括括括括起起起起来来来来的的的的字符或字符串;各个数之间用逗号隔开。字符或字符串;各个数之间用逗号隔开。字符或字符串;各个数之间用逗号隔开。字符或字符串;各个数之间用逗号隔开。DBDBDBDBX1,X2,X1,X2,X1,X2,Xn,Xn,Xn8 8 8 8ORG 1000HORG 1000HA1:DB 01001010B,23A1:DB 01001010B,23o o,23,78H,23,78H,A2:DB A2
16、:DB 5 5,”12AB12AB”,12D,-2,12D,-2(1000H)=01001010B=4AH,(1000H)=01001010B=4AH,(1001H)=23(1001H)=23o o=13H=13H,(1002H)=23=17H,(1002H)=23=17H,(1003H)=78H,(1003H)=78H,(1004H)=35H(5(1004H)=35H(5的的ASCIIASCII码码),),(1005H)=31H(1(1005H)=31H(1的的ASCIIASCII码)码),(1006H)=32H(2(1006H)=32H(2的的ASCIIASCII码码),),(1007H)
17、=41H(A(1007H)=41H(A的的ASCIIASCII码)码),(1008H)=42H(B(1008H)=42H(B的的ASCIIASCII码码),),(1009H)=12D=0CH(1009H)=12D=0CH(100AH)=-2=0FEH(100AH)=-2=0FEH【例例例例】定义数据字命令定义数据字命令DW(DefineDW(DefineWord)Word)n n在程序存储器中在程序存储器中定义定义1616位的数据字位的数据字。n n存存存存放放放放时时时时,数数数数据据据据字字字字的的的的高高高高8 8 8 8位位位位在在在在低低低低地地地地址址址址,低低低低8 8 8 8位
18、位位位在在在在后后后后高地址。高地址。高地址。高地址。n n通常,通常,通常,通常,DBDBDBDB用来定义数据,用来定义数据,用来定义数据,用来定义数据,DWDWDWDW用来定义地址用来定义地址用来定义地址用来定义地址。DWDWY1,Y2,YnDW DW DW DW“AAAAAAAA”;存入存入存入存入41H41H41H41H,41H41H41H41HDW DW DW DW“A A A A”;存入存入存入存入00H00H00H00H,41H41H41H41HDW DW DW DW“ABCABCABCABC”;不合法,因为超过了两个字节不合法,因为超过了两个字节不合法,因为超过了两个字节不合法
19、,因为超过了两个字节DW 100H,1ACH,-804DW 100H,1ACH,-804DW 100H,1ACH,-804DW 100H,1ACH,-804;按顺序存入按顺序存入按顺序存入按顺序存入01H01H01H01H、00H00H00H00H、01H01H01H01H、0ACH0ACH0ACH0ACH、0FCH0FCH0FCH0FCH、0DCH0DCH0DCH0DCH9 9 9 9【例例例例】预留存储区命令预留存储区命令DS(Define Storage)DS(Define Storage)n n在程序存储器中保留指定数目的单元作为在程序存储器中保留指定数目的单元作为预留存储区预留存储区
20、,供程序运行使用。,供程序运行使用。【例例】ADDRTAB:DS 20ADDRTAB:DS 20;从标号从标号ADDRTABADDRTAB代表的地址开始,预留代表的地址开始,预留2020个个;连续的地址单元。连续的地址单元。DS DS DBDB、DWDW、DSDS只能对于程序存储器使用只能对于程序存储器使用10101010位定义命令位定义命令BITBITn n把位地址赋给字符名称。把位地址赋给字符名称。【例例例例】:AQ BIT P1.0AQ BIT P1.0AQ BIT P1.0AQ BIT P1.0;把把把把P1.0P1.0P1.0P1.0的位地址赋给字符名的位地址赋给字符名的位地址赋给字
21、符名的位地址赋给字符名AQAQAQAQ,在其后,在其后,在其后,在其后;的编程中的编程中的编程中的编程中AQAQAQAQ可以作为位地址使用。可以作为位地址使用。可以作为位地址使用。可以作为位地址使用。BIT BIT 11111111赋值命令赋值命令 EQU(Equate)EQU(Equate)n n给数或符号赋给给数或符号赋给字符字符n n 可以是常数、地址、标号或表达式。可以是常数、地址、标号或表达式。可以是常数、地址、标号或表达式。可以是常数、地址、标号或表达式。n n赋赋赋赋值值值值以以以以后后后后的的的的字字字字符符符符既既既既可可可可以以以以作作作作地地地地址址址址使使使使用用用用,
22、也也也也可可可可以以以以作作作作立即数使用。立即数使用。立即数使用。立即数使用。【例例】CS EQU 0FFFFHCS EQU 0FFFFHA1 EQU R1A1 EQU R1A2 EQU 10H A2 EQU 10H DELAY EQU 0708HDELAY EQU 0708HA1A1A1A1可作为寄存器可作为寄存器可作为寄存器可作为寄存器R1R1R1R1来使用,来使用,来使用,来使用,A2A2A2A2可作为可作为可作为可作为8 8 8 8位直接地址或立即数使用,位直接地址或立即数使用,位直接地址或立即数使用,位直接地址或立即数使用,DELAYDELAYDELAYDELAY可作为可作为可作为
23、可作为16161616位地址或者立即数使用。位地址或者立即数使用。位地址或者立即数使用。位地址或者立即数使用。字符名字符名字符名字符名 EQU EQU EQU EQU 数或汇编符号数或汇编符号数或汇编符号数或汇编符号12121212数据地址赋值伪指令数据地址赋值伪指令DATADATAn n将表达式的值赋给字符。将表达式的值赋给字符。n n表达式可以是一个数据或地址,也可以是一个表达式可以是一个数据或地址,也可以是一个表达式可以是一个数据或地址,也可以是一个表达式可以是一个数据或地址,也可以是一个包含所定义字符名在内的表达式,但不能是一包含所定义字符名在内的表达式,但不能是一包含所定义字符名在内
24、的表达式,但不能是一包含所定义字符名在内的表达式,但不能是一个汇编符号(如个汇编符号(如个汇编符号(如个汇编符号(如R0R0R0R0R7R7R7R7)。)。)。)。n n与与与与EQUEQUEQUEQU的区别的区别的区别的区别:n nEQUEQUEQUEQU必须先定义后使用。必须先定义后使用。必须先定义后使用。必须先定义后使用。n nDATADATADATADATA无此限制,所以无此限制,所以无此限制,所以无此限制,所以DATADATADATADATA伪指令可以放在源程序的伪指令可以放在源程序的伪指令可以放在源程序的伪指令可以放在源程序的开头或末尾开头或末尾开头或末尾开头或末尾MOV R0,A
25、DDRESSMOV R0,ADDRESSMOV R1,#ADDRESSMOV R1,#ADDRESSADDRESS DATA 31HADDRESS DATA 31H将将31H31H单元内容送单元内容送R0,(R1)=31HR0,(R1)=31H。字符名字符名字符名字符名 DATA DATA 表达式表达式表达式表达式13131313汇编终止命令汇编终止命令END(End of assembly)END(End of assembly)n n用用于于终终止止源源程程序序的的汇汇编编工工作作,在在一一个个源源程程序序中中只只能能有有一一条条ENDEND命命令令,并并且且位位于于程程序序的的最后最后。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 C51 单片机 汇编语言 程序设计
限制150内