4单片机原理及接口技术-.pptxVIP

  • 1
  • 0
  • 约7.1千字
  • 约 69页
  • 2023-12-16 发布于湖北
  • 举报

;;4.1.1程序设计语言简介;·汇编语言也有它的缺点:缺乏通用性,程序不易

移植,是一种面向机器的低级语言。即使用汇编语言编写程序时,仍必须熟悉机器的指令系统、寻址方式、寄存器的设置和使用方法。每个计算机系统都有它自己的汇编语言。不同计算机的汇编语言之间不能通用。

3. 高级语言

·高级语言是一种面向算法、过程和对象的程序设计语言

,它采用接近人们自然语言和习惯的数学表达式及直接命令的方法来描述算法、过程和对象,如BASIC、C语言等

。高级语言的语句直观,易学,通用性强,便于推广、交

流,但高级语言编写的程序经编译后所产生的目标程序大

,占用内存多,运行速度较慢,这在实时应用中是一个突出的问题。;4.1.2 汇编语言程序设计步骤;分配内存工作单元,确定程序与数据的存放地址。

编写源程序。流程图设计后,程序设计思路就比较清楚了

,接下来的任务就是选用合适的汇编语言指令来实现流程图中每一框内的要求,从而编制出一个有序的指令流,这就是源程序设计。

程序优化。程序优化的目的在于缩短程序的长度,加快运算速度和节省存储单元。如恰当的使用循环程序和子程序结构,通过改进算法和正确使用指令来节省工作单元及减少程序执行的时间。

上机调试、修改、最后确定源程序。只有通过上机调试并得出正确结果的程序,才能认为是正确的程序。对于单片机来说,没有自开发的功能,需要使用仿真器或利用仿真软件进行仿真调试,修改源程序中的错误,直至正确为止。;4.2.1伪指令

指令能使CPU执行某种操作,能生成对应的机器代码。

·伪指令不能命令CPU执行某种操作,也没有对应的机器代码。它的作用仅用来给汇编程序提供某种信息。

常用的伪指令如下:

1.汇编起始伪指令ORG

格式:[标号:] ORG 16位地址

功能:规定程序块或数据块存放的起始地址。如:ORG8000H

START:MOVA,#30H

……

该伪指令规定第一条指令从地址8000H单元开始存放,即标号START的值为8000H。;2.汇编结束伪指令END

格式:[标号:] END [表达式]功能:结束汇编。

汇编程序遇到END伪指令后即结束汇编。3.定义字节数据伪指令DB

格式:[标号:] DB 8位字节数据表

功能:从标号指定的地址单元开始,将数据表中的字节数据按顺序依次存入。

数据表可以是一个或多个字节数据、字符串或表达式,各项数据用“,”分隔,一个数据项占一个字节单元。例如

ORG1000H

TAB:DB-2,-4,100,30H,‘A’,‘C’……

汇编后:(1000H)=FEH,(1001H)=FCH,(1002H)=64H,

(1003H)=30H,(1004H)=41H,(1005H)=43H

用单引号括起来的字符存其ASCⅡ码,负数存其补码。;定义字数据伪指令DW

格式:[标号:] DW 16位字数据表

功能:从标号指定的地址单元开始,将数据表中的字数据按从左到右的顺序依次存入。

应注意:16位数据存入时,先存高8位,后存低8位。ORG1400H

DATA:DW 324AH,3CH

……

汇编后:(1400H)=32H,(1401H)=4AH,(1402H)=00H,(1403H)=3CH

定义空间伪指令DS

格式:[标号:] DS 表达式

功能:从标号指定的地址单元开始,保留若干个存储单元作为备用的空间。保留的数量由表达式指定。;例如

ORG 3000HBUF:DS05H

……

汇编后,从地址3000H开始保留5个存储单元作为备用。

应注意:DB、DW、DS伪指令只能对程序存储器进行定义,不能对数据存储器进行定义;DB伪指令常用来定义数据,DW伪指令常用来定义地址。

6.赋值伪指令EQU(或=)

格式:符号名EQU表达式或 符号名=表达式功能:将表达式的值定义为一个指定的符号名。

应注意:用EQU定义的符号不允许重复定义,用“=”定义的符号允许重复定义。;4.3 汇编语言程序设计;4.3.1 顺序程序设计;ORG0200H;例4-2 编程将20H单元中的8位无符号二进制数转换成三位BCD码,并存放在22H(百位)和21H(十位,个位)两个单元中。

解:因8位二进制数对应的十进制数为0—255,所以先将原数除以100,商就是百位数的BCD码,余数作为被除数再除以10,商为十位数的BCD码,最后的余数就是个位数的BCD码,将十位、个位的BCD码合并到一个字节中,将结果存入即可。;ORG 1000H;4.3.2 分支程序设计;图(a)结构是用条件转移指令来实现分支。当给出的条件成立时

,执行程序段A,否则执行程序段B。

图(b)结构是用散转指令JMP来实现多分支转移。它首先将分支程序按序号排列,然后按照序号的值来实现多分支转移。;例4-3

文档评论(0)

1亿VIP精品文档

相关文档