单片机第三章汇编语言程序设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机第三章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《单片机第三章汇编语言程序设计.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机第三章汇编语言程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章要点 本章介绍汇编语言程序的书写格式、编写步骤以及程序的基本结构。通过一些具体范例,了解与掌握编程方法并从中掌握程序设计的基本技巧。第一节汇编语言程序的格式汇编语言编写的程序由语句组成,每一语句占一行填写一条指令。每行分4段,分别为标号、操作码、操作数和注释。ORG2000HADDR:MOVA,00H;累加器清零MOV41H,A;41H、42H清零MOV42H,AMOVR2,0AH;设
2、定累加次数MOVR1,30H;设定数据首地址LOOP:MOVA,R1;取数ADDA,41H;累加到41HJNCNEXT;是否有进位INC42H;有进位42H加1NEXT:MOV41H,A;将和存入41HINCR1DJNZR2,LOOPLJMP$END标号:代表该行指令所在的地址,结尾应加一冒号操作码:助记符或伪指令的符号。操作数:操作所需要的数据或数据的存储位置来源注释:对语句的说明,也可不加注释返回本章首页第二节伪指令伪指令不执行任何操作,汇编时也不生成目标程序。它仅仅提供对汇编的要求。汇编成机器语言后,伪指令就不存在了。以下为常用的伪指令:1.ORG(Origin)::指明汇编起始点地址。
3、2.END:指明源程序至此结束。3.EQU(Epual):赋值伪指令,可对地址标号进行赋值。4.DB(Define Byte):定义从指定标号地址开始所存放的字节数据,多字节时各字节间用逗号隔开。5.DW(Define Word):定义从指定的标号地址开始,所存放的字数据。跟DB一样,输入几个字时各字间要用逗号隔开。6.DS(Define Storage):定义存储区,表示从标号所指的存储单元开始,保留的内存单元数量,以供程序使用。返回本章首页第三节汇编语言程序的编写步骤及基本结构一、顺序结构:顺序结构是指程序按指令顺序逐条执行的一种结构。也是程序结构中最简单的一种结构。二、分支结构:指程序中
4、具有转移指令,可根据转移条件决定是转移还是继续执行下一条指令。几种分支结构程序的框图三、循环结构 循环结构由四个环节组成。1.初初始始化化部部分分:对循环体中参加操作的有关参数、地址等赋以初始值,并指定循环结束条件。2.循循环环体体部部分分:指每次循环都需要重复执行的程序段。3.修修改改初初始始值值:每次循环结束都要对初始值进行修改,特别是判断结束条件的参数,每经一次循环后都要作相应的修改,以便决定是否结束循环。4.结结束束判判断断部部分分:检查结束条件是否满足,若条件满足停止循环,否则返回继续执行循环体。循环结构框图 图中每执行一次循环体后,都要检查结束条件是否满足,若条件满足停止循环,否则
5、返回继续执行循环体。右边两图区别是先检查循环是否结束后修改初值,还是先修改初值后检查循环是否结束。顺序结构的程序举例顺序结构的程序举例 例3-1将地址为2000H、2001H、2002H的片外数据存储单元的内容,分别传送到2002H、2003H、2004H存储单元中去。ORG0000HLJMP1000HORG1000HMOVDPTR,#2002HMOVXA,DPTRMOVDPTR,#2004HMOVXDPTR,AMOVDPTR,#2001HMOVXA,DPTR MOVDPTR,#2003HMOVXDPTR,AMOVDPTR,#2000HMOVXA,DPTRMOVDPTR,#2002HMOVXD
6、PTR,ASJMP$分支结构的程序举例分支结构的程序举例例3-2有甲乙两数存于41H和42H存储单元,运算符号的ASCII码存于40H单元,编写一根据40H的符号,对甲乙两数进行相应运算的程序;井将运算结果存于43H单元。ORG 0000H LJMP 0100H ORG 0100 MOV A,40H CJNE A,#2BH,MINUS PLUS:MOV A,41H ADD A,42H MOV 43H,A SJMP CLOSE MINUS:CJNE A,#2DH,ERRCLRC MOVA,41H SUBB A,42H MOV43H,A SJMP CLOSE ERR:MOV43H,#0FFH CL
7、OSE:SJMP$循环结构的程序举例循环结构的程序举例 例3-3 有一组数据,存放在30H为首地址的内存单元,数据长度为32个。试将每一个数分别取出加1,再存人以40H为首地址的内存单元。ORG0000H0000 020100 LJMP0100H0100 ORG0100H0100 784FMOVR0,#4FH0102 795FMOVR1,#5FH0104 7F20MOVR7,#20H0106 E6LOOP:MOVA,R00107 04INCA0108 F7MOVR1,A0109 18DECR0010A 19DECR1010B DFF9DJNZR7,LOOP010D 80FESJMP$END 循
8、环结构程序举例循环结构程序举例例3-4 编制一延时子程序,使执行这一段程序延时2s。0100 7D64 MOV R5,#64H 0102 7E64 LOOP1:MOVR6,#64H 0104,7F62 LOOP2:MOV R7,#62H 0106 DFFE LOOP3:DJNZ R7,LOOP3 0108 DEFA DJNZR6,LOOP2 010A DDF6 DJNZ R5,LOOPl 010C 22 RET 以上程序执行的时间近似为2秒,如要准确计算还需考虑执行对R5、R6、R7的赋值指令所需的时间、RET返回指令的时间等等。返回本章首页第四节程序设计举例一、多字节加法程一、多字节加法程序
9、序例3-5两个10字节数,分别从存储单元0801H、和0901H开始存放,先存低字节后存高字节,求其和并存于乙数原来所在的单元。多字节加法的程序多字节加法的程序0100ORG0100H0100900801 MOVDPTR,#0801H;甲数据地址010375A009 MOVP2,#09H;乙数据地址高字节01067901 MOVR1,#01H;乙数据地址低字节01087F0A MOVR7,#0AH;数据字节数010AC3CLRC010BE0LOOP:MOVXA,DPTR;取甲数010CFCMOVR4,A;暂存R4010DE3MOVXA,R1;取乙数010E3CADDCA,R4;两数相加并加上一
10、次进位位010FF3MOVXR1,A;和存于原乙数的地址011009INCR1;修改地址指针0111A3INCDPTR0112DFF7DJNZR7,LOOP;继续相加0114E4CLRA01153400ADDCA,#00H0117F3MOVXR1,A;存最高字节进位位011880FESJMP$;结束二、数制变换二、数制变换 例3-6 将30H中的十六进制数转换为BCD码,并存于40H、41H。主程序:入口条件为待转换的十六进制数存R10100 ORG 0100H0100 A930 MOV R1,30H0102 122000 LCALL SUB0105 8A40 MOV 40H,R20107 8
11、B41 MOV 41H,R30109 80FE SJMP$END子程序:出口条件为转换所得子程序:出口条件为转换所得BCD码存码存R2、R32000 ORG 2000H2000E9SUB;MOVA,R1;取十六进制数200175F064MOVB,#64H200484DIVAB;除以1002005FAMOVR2,A;商为百位数存R22006740AMOVA,#0AH2008C5F0XCHA,B;除100余数作为下一次的被除数200A84DIVAB;余数再除以10200BC4SWAP A200C45F0ORLA,B;十位个位合并200EFBMOVR3,A;十位个位合并存R3200F22RET 三三
12、、求求最最大大值值或或最最小值小值 1.无无符符号号数数求求最最大大值值与最小值与最小值例3-7在以2042H为首地址的存储单元中,连续存放一组单字节无符号数,数据个数存于2041H单元,从中找出最大数并存于2040H。无符号数求最大值或最小值的程序无符号数求最大值或最小值的程序0100 ORG 0100H0100 902041 MOVDPTR,#2041H0103 E0MOVX A,DPTR0104 FFMOV R7,A0105 753000 MOV30H,#00H0107 A3 LOOP:INC DPTR0108 E0 MOVX A,DPIR0109 B53002CJNEA,30H,HER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第三 汇编语言 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内