欢迎来到天天文库
浏览记录
ID:50337497
大小:1.32 MB
页数:35页
时间:2020-03-08
《单片机原理及其接口技术 教学课件 作者 严洁 主编 第3章 汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.1汇编语言源程序设计与汇编3.2程序计数器和程序运行3.3顺序程序设计3.4分支程序设计3.5循环程序设计3.6子程序设计3.7常用程序序设计3.1汇编语言源程序设计和汇编3.1.1指令和助记符指令=操作码+操作数例如8051做10加20的加法,在程序存储器中需要预先存储2条机器码指令01110100;指令1操作码,把10送入累加器A00001010;指令1操作数,10=00001010B=0AH00100100;指令2操作码,累加器A内容加20,结果存于A00010100;指令2操作数,20=00010100B=14HMO
2、VA,#0AH;操作码助记符MOV,操作数助记符累加器A和立即数10ADDA,#14H;操作码助记符ADD,操作数助记符累加器A和立即数20机器语言汇编语言手工汇编机器汇编3.1.2伪指令伪指令虽然具有类似指令的形式,但不是真正的指令,不会产生任何可供机器直接执行的机器码。伪指令用来对汇编过程进行控制,是编程员发给汇编程序的命令,也称为汇编命令或汇编程序控制命令。1、起始汇编伪指令ORG(Origin)ORG16位地址用来规定源程序或者数据块在程序存储器的起始地址。注意地址从小到大排列,不同的程序段不可彼此覆盖。2、结束汇编伪指
3、令ENDEND表示源程序到此结束。在一个源程序中只允许出现一条END语句,而且必须安排在源程序的末尾,汇编器对END语句后的所有语句都不进行汇编。3、赋值伪指令EQU(Equate)字符名称EQU赋值项其中赋值项可以是常数、地址、标号或者是表达式,以8位或16位二进制数存放。汇编程序自动把EQU右边的赋值项赋给左边的字符名称。一旦字符名称被赋值它就可以在程序中作为数据或地址来多次使用。必须先赋值再使用,故该语句常放在程序开头。3.1.2伪指令4、位地址赋值伪指令BIT字符名称BIT位地址把BIT右边的位地址或位名称赋给左边的字符
4、名称。因此BIT语句定义的字符名称是此位地址的别称。5、定义空间伪指令DS(DefineStorage)[标号:]DS表达式DS从指定的地址单元开始,保留由表达式指定的若干字节空间作为备用空间,空间大小由DS语句中表达式决定。同DB一样,DS伪指令只能用于程序存储器。ORG1000HDS08H;从1000H开始保留8字节的存储空间备用DB71H,13H,11H;数据表从1008H开始存放经汇编后从1000H单元开始保留8个字节的存储单元,而从1008H单元开始连续存放71H、13H和11H等数据。3.1.3汇编语句格式[标号]:
5、操作码[操作数1][,操作数2][,操作数3][;注释]1、标号标号是语句地址的标志符号,它由1~8个ASCII字符组成,可以是字母、数字和一些特定字符,英文字母开头,冒号结束。为了避免把标号中字符当作指令来汇编,用户在编写自己的程序时绝对不应采用指令、寄存器名以及伪指令等作为语句的标号,而且同一标号在一个程序中只能定义一次。对每一条语句而言,标号不是必选的,标号的有无取决于程序中有无其它语句访问该语句,一般用于转移程序的首地址。2、操作码操作码是汇编指令格式中唯一不能空缺的部分,可分为指令性语句和指示性语句两类。(1)指令性语
6、句指令性语句是指采用指令助记符构成的汇编语言语句,8051单片机中的指令性语句是指111条指令的助记符语句。因此,指令性语句是汇编语言语句的主体。每条指令性语句都有与之对应的机器码供CPU识别和执行。如前述及的MOV、ADD、SETB、CLR等。(2)指示性语句指示性语句又称为伪指令语句,不会产生任何可供CPU识别和执行的机器码,只是用来对汇编过程进行某种控制。3.1.3汇编语句格式[标号]:操作码[操作数1][,操作数2][,操作数3][;注释]3、操作数指令执行时涉及到的数据或者数据的地址。它与操作码以空格分界,两操作数或三
7、操作数时以逗号分开,可以是十进制数、二进制数(B)、十六制数(H)、ASCII码(‘’)、寄存器名、存储器地址、位地址以及变量标识符等。4、注释对语句在程序中完成的功能加以解释,“;”分号开头,不会被汇编程序理解为指令。例3-1ORG0100H;下面源程序从程序存储器的0100H单元开始存放MAIN:MOVA,#00H;标号MAIN=0100HMOVR2,#23HMOVR3,#24HMOVR4,#25HMOVR5,#26HADDA,R2ADDA,R3ADDA,R4ADDA,R5HERE:SJMPHERE;标号HERE=010EH
8、END;源程序到此结束3.2程序计数器PC和程序运行3.2.1程序计数器PC(ProgramCounter)PC(ProgramCounter):程序计数器。16位的寄存器,存放的是ROM地址{起始地址:0000H形成下一条要执行指令的地址:①自动加1:读指令的
此文档下载收益归作者所有