电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

单片机的汇编指令

2017-04-15 12:22分类:PLC基础知识 阅读:

 

学习了指令体系后就能够编写一些简略的汇编程序。

一、汇编程序功用

汇编言语编写的程序不能直接被机器施行,需求翻译成机器码构成的方针程序,这个进程即是汇编。方针文件尽管现已是二进制文件,但它还不能直接作业,需求通过联接程序把方针文件和其他方针文件联接在一同构成可施行文件。这个文件才调在机器上作业。因而,要在核算机上作业汇编言语程序的进程是:

(1)用批改程序树立源文件ASM;

(2)用汇编程序把ASM文件改换成OBJ文件;

(3)用联接程序LINK把OBJ文件改换成EXE文件;

(4)施行该程序。

二、汇编言语源程序的格局

汇编言语源程序有必定的书写格局。通常由左到右按序起码包含下列四项内容:

[姓名]操作操作数[;注释]

姓名项是指一个标号或变量。

操作项是一个操作码的助记符,它可所以指令、伪指令或宏指令名。

操作数项由一个或多个表达式构成,它供给为施行所恳求的操作而需求的信息。操作数项可所以常数、寄存器、标号、变量或由表达式构成。

注释项用来阐明程序或句子的功用。“;”为辨认注释项的开端。“;”也能够从一行的榜首个字符开端,此刻整行都是注释,常用来阐明下面一段程序的功用。

上面四项中带方括号的两项是可选项。各项之间有必要用“空格”(space)或“水平制表”(Tab)符离隔。

三、汇编程序方案的进程与办法

1.汇编言语程序方案的根柢进程

关于一个单片机运用体系,在通过体系全体方案证明、硬件构成方案根柢定型的根底上,即可着手运用软件的方案。一个无缺的程序大致能够分为以下几个进程:

(1)方案使命的剖析、断定有关算法或思路

(2)程序全体方案

(3)编写汇编程序

(4)源程序的汇编与调试

以上所述的程序方案进程仅仅为程序方案者树立一个无缺的概念和进程。在实习的作业中应视运用软件的实习需求、程序量的巨细和杂乱程度等,挑选适宜的方案进程和调试办法。

2.汇编言语程序方案办法

单片机汇编言语运用程序的方案办法能够说五花八门,活络多样。不只与功用恳求、方案、杂乱程度有关,一同也与开发人员的履历和习气有关。

3.汇编言语源程序的根柢结构

一个单片机汇编言语运用程序,不论其简略仍是杂乱,老是由简略程序、分支程序、循环程序、查表程序、子程序(包含中段效劳程序)等结构化的程序段有机的组合而成。这是程序方案的根底。

4.差异功用模块

关于一个功用单一的简略程序,通常按其功用恳求及操作次第,合理的挑选上述结构化程序块,自始至终的由上而下捉住时机。

一个具有多种功用而较杂乱的程序,则通常选用模块化方案办法。即按纷歧样功用差异成若干功用相对独立程序模块,别离进行独立的方案和查验,毕竟设备成程序的全体,通过联调,完毕程序的全体方案。

5.自顶而下逐渐求精

自顶而下逐渐求精的程序方案办法是首要方案骨干程序,将隶属的或许子程序等用程序象征或过渡程序替代,在骨干程序完毕的条件下再逐一充沛隶属程序段或子程序,使程序的生成逐渐翻开,逐渐深化、求精,毕竟完毕程序的方案。

6.子程序办法

这些年选用子程序的汇编言语程序方案较为广泛。这种方案办法的主导思维是将运用体系的多个首要功用,或许一个大的功用差异为若干个子程序。主程序完毕对体系的初始化、各功用模块的子程序的调用等。

四、伪指令

汇编程序对用汇编言语写的源程序进行汇编时,还要供给一些汇编用的操控指令。这些指令在汇编时并不发作方针代码,不影响程序的施行,所以称为伪指令。常用的伪指令有:

1.ORG指令

ORG指令的语法为:ORGexpression

这条指令用在一段源程序或数据块的前面,阐明紧随在后边的程序段或数据块的开端地址。指令中的16位地址即是该开端地址值。

2.DATA指令

DATA指令的语法为:SymbolDATAaddress

这条指令用于分配一个地址(方案为00H~0FFH)给某个特定的标识符。这个标识符不能被重界说。与DATA指令邻近的还有BIT、CODE、DSEG、IDATA、XDATA它们的效果都是界说一个标识符,运用的办法也与DATA类似,仅仅它们分配的地址方案与DATA纷歧样。

3.DB指令

DB指令的语法为:[label:]DBexpression[,expression...]

这条指令用于告诉汇编程序用expression中的内容来初始化label开端的存储器单元。expression可所以单个字节数字、用逗号别离隔的字节串或用双引号所指示的字符串。方括号标明括号中的内容是可选的。

与DB指令邻近的还有DW、DD、DS,它们的效果都是用来界说代码段或许常数段内的数据,仅仅界说数据的巨细纷歧样。DB是界说一个字节,DW、DD别离用来界说一个字以及双字,DS是在待寄存的必定数量的存储单元前面界说应保留的存储器单元数

4.EQU指令

EQU指令的语法为:标号EQU操作数

EQU伪指令的功用是将操作数赋值于标号,使两头的两个量等值。

5.END指令

END指令的语法为:END

这条指令用在源程序的毕竟,标明源程序文件的完毕,END指令后的指令将不会被汇编程序处理。在汇编源文件中这条指令是有必要的并且应当是原文件的毕竟一条指令。

五、汇编程序方案

1.简略程序方案

简略程序又称次第程序。这种程序的办法最简略,核算机施行程序的办法是“自始至终”,逐条施行指令句子,直到程序完毕,除非用格外指令让它跳转,不然它会在PC操控下施行。这是程序的最根柢办法,任何程序都离不开这种办法。

例1:编写1+2的程序

ORG0000H

MOV30H,#02

MOVA,#01

ADDA,30H

END

2.分支程序方案

在处理实习事务中,只用简略程序方案的办法是不行的。由于大有些程序总包富含差异、比照等状况,这就需求分支程序。分支程序是运用条件搬运指令,使程序施行到某一指令后,依据条件(即上面作业的状况)是不是满意,来改动程序施行的持续。下面举两个分支程序的比方。

例2:求单字节有符号二进制数的补码。

ORG0000H

CMPT:JNBACC.7,NCH;(A)>0,不需改换。

CPLA

ADDA,#1

SETBACC.7 ;保留符号。

NCH:RET

END

3.循环程序方案

在程序方案中,有时会遇到屡次重复处理的疑问,这就需求下面讲的循环程序来完毕。循环程序是强行CPU重复施行某一指令系列(程序段)的一种程序结构办法,但凡要重复施行的程序段都能够按循环结构方案。

循环程序通常由五有些构成:

(1)初始化有些:为循环程序做预备。如:设置循环次数计数器的初值,地址指针置初值,为循环变量赋初值等。

(2)处理有些:为重复施行的程序段,是循环程序的实体。

(3)批改有些:每施行一次循环体后,对指针作一次批改,使指针指向下一数据地址方位,为进入下一轮处理做预备。

(4)操控有些:依据循环次数计数器的状况或循环条件,查看循环是不是能持续进行,若循环次数到或循环条件不满意,应操控退出循环,不然持续循环。

通常2、3、4有些又称为循环体。

(5)完毕有些:剖析及寄存施行效果。

例如:设有50个外部RAM单元要清“0”,即为循环次数寄存在R2寄存器中,其首址寄存在DPTR中,设为2000H。

程序如下:

ORG0000H

MOVDPTR,#2000H

CLEAR:CLRA

MOVR2,#32H ;置计数值。

LOOP:MOVX@DPTR,A

INCDPTR ;批改地址指针

DJNZR2,LOOP ;操控循环

END

上一篇:单片机的复位电路

下一篇:ADC0809芯片与单片机的接口

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部