资源描述:
《片机汇编语言程序经典考试题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、51单片机汇编语言程序设计内容提要:1、介绍伪指令;2、汇编语言程序的汇编过程;3、汇编语言实用程序举例。先介绍几个概念:(1)汇编语言用助记符表示指令系统的语言称汇编语言。(2)汇编语言源程序通常把用汇编语言编写的程序称之为汇编语言源程序。(3)汇编将汇编语言源程序“翻译”成机器语言目标程序的过程称为汇编。(4)目标程序通常把可以在计算机上直接运行的机器语言程序称为目标程序。一、伪指令1.伪指令的概念不产生目标代码,不影响程序执行,仅仅产生一些供汇编用的命令,这样的命令称为伪指令。2.伪指令的作用(1)指定目标程序或数据存放的地址;(2)给
2、一些指定的标号赋值;(3)在内存中预留工作单元;(4)表示源程序结束3.伪指令(1)ORG伪指令用于设置起始地址,一般形式为ORGnn一般总是出现在某段程序或数据的前面。如ORG2000HMOVA,20H。。。表示其后的指令从2000H开始存放。若在源程序开始不放ORG指令,则汇编将从0000H开始编排目标程序。注意点:要防止程序的重叠。(2)DB(DefineByte)一般形式为:<标号:>DB<项或项表>项或项表,是指一个字节,数或字符串,或以引号括起来的ASCII码字符串。该指令的功能是将项或项表的数值存入从标号开始的连续单元中。例如:
3、HERE:DB84H;(HERE)=84HDB43H;(HERE+1)=43HORG1000HSEG1:DB53H,74H,78H,’1’,’2’SEG2:DB23H,‘DAY’END(1000H)=53H(1001H)=74H(1002H)=78H(1003H)=31H数字1的ASCII码(1004H)=32H数字2的ASCII码(1005H)=23H(1006H)=44H(1007H)=41H‘DAY’的ASCII码(1008H)=59H注意点:项或项表为数值时,取值范围为00-FFH,若为字符串其长度应限制在80个字符内。(3)DW(D
4、efineWord)一般形式为:<标号:>DW<项或项表>项或项表指一个字,DB用于定义8位数据(一个字节),DW用于定义16位数据(一个字)。DW伪指令常用来建立地址表。例如:ABC:DW1234H,08H;和ABC:DB12H,34H,00H,08H是等价的。(4)DS或DEFS(DefineStorage)预留存储区一般形式为:<标号:>DS<表达式>由标号指定开始单元,定义一个存储区,以备源程序使用。预留的单元数由表达式的值确定。例如:ORG3C40HTEMP:DS10…从3C40开始,保留10个连续的存储单元。(5)EQU(Equa
5、te)为标号赋值一般形式为:<标号:>EQUnn或<表达式>其功能是,将语句操作数的值,赋给本语句的标号。故又称为等值指令。例如:BLKEQU1000H即给标号BLK赋以地址值1000H,在同一个程序中,用EQU给标号赋以地址值后,标号的值在整个程序中不能再改变。(6)END源程序结束一般形式为:<标号:>ENDEDN语句是一个结束标志。它告诉汇编程序,该程序段已经结束。因此,该语句必须放在整个程序之后。实际使用时,END语句的标号是可有可无的。二、汇编语言的构成1.汇编语言和机器语言机器语言是用二进制代码“0”和“1”来表示指令和数据的最原
6、始的程序设计语言。用机器语言编写的程序称为目标程序或机器语言程序。机器语言能被计算机直接识别和执行,但对人来说,直接使用机器语言非常困难,因此产生了汇编语言。汇编语言是一种面向机器的语言,使用助记符,每一个助记符对应一个机器码,因此使用汇编语言编程比使用机器码更方便,但用汇编语言编写的程序计算机不能直接识别和执行,必须将其翻译成目标程序,这一翻译过程称为汇编,汇编可以用人工完成也可以用机器完成。2.汇编指令的格式汇编指令由1—4个字段组成,格式如下:<标号:><操作码><操作数1><操作数2><操作数3>;<注释>(1)标号用来表明指令的地址
7、,用8个或以下的字符组成用字母或下划线开头,不能使用保留字,可以缺省。(2)操作码即指令的助记符,用来指明CPU执行何种操作,是不能缺少的部分。(3)操作数参加运算的数据或数据的地址。(4)注释为了方便程序的阅读,而作的说明。三、程序设计1、顺序结构程序编写例1.将20H单元中的8位无符号数转换成3位BCD码,并存放到FIRST(百位)、SECO(十位)和THIR(个位)中。FIRSTEQU30HSECOEQU31HTHIREQU32HMOVA,20HMOVB,#64HDIVABMOVFIRST,AMOVA,BMOVB,#0AHDIVABMO
8、VSECO,AMOVTHIR,BSJMP$END例2已知20H单元中有一二进制数,编程将其转换成3位BCD数后,百位送入FIRST单元的低4位,十位和个位分别送入S