最新单片机第三章汇编语言程序设计ppt课件.ppt
《最新单片机第三章汇编语言程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新单片机第三章汇编语言程序设计ppt课件.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章要点 本章介绍汇编语言程序的书写格式、编写步骤以及程序的基本结构。通过一些具体范例,了解与掌握编程方法并从中掌握程序设计的基本技巧。顺序结构的程序举例顺序结构的程序举例 例3-1将地址为2000H、2001H、2002H的片外数据存储单元的内容,分别传送到2002H、2003H、2004H存储单元中去。ORG0000HLJMP1000HORG1000HMOVDPTR,#2002HMOVXA,DPTRMOVDPTR,#2004HMOVXDPTR,AMOVDPTR,#2001HMOVXA,DPTR MOVDPTR,#2003HMOVXDPTR,AMOVDPTR,#2000HMOVXA,DPTR
2、MOVDPTR,#2002HMOVXDPTR,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 CLOS
3、E ERR: MOV43H,#0FFH CLOSE: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 DFF9DJNZR
4、7,LOOP010D 80FESJMP$END 循环结构程序举例循环结构程序举例例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返回指令的时间等等。返回本
5、章首页第四节程序设计举例一、多字节加法程一、多字节加法程序序例3-5两个10字节数,分别从存储单元0801H、和0901H开始存放,先存低字节后存高字节,求其和并存于乙数原来所在的单元。多字节加法的程序多字节加法的程序0100ORG0100H0100900801 MOVDPTR,#0801H;甲数据地址010375A009 MOVP2,#09H;乙数据地址高字节01067901 MOVR1,#01H;乙数据地址低字节01087F0A MOVR7,#0AH;数据字节数010AC3CLRC010BE0LOOP:MOVXA,DPTR;取甲数010CFCMOVR4,A;暂存R4010DE3MOVXA,
6、R1;取乙数010E3CADDCA,R4;两数相加并加上一次进位位010FF3MOVXR1,A;和存于原乙数的地址011009INCR1;修改地址指针0111A3INCDPTR0112DFF7DJNZR7,LOOP;继续相加0114E4CLRA01153400ADDCA,#00H0117F3MOVXR1,A;存最高字节进位位011880FESJMP$;结束二、数制变换二、数制变换 例3-6 将30H中的十六进制数转换为BCD码,并存于40H、41H。主程序:入口条件为待转换的十六进制数存R10100 ORG 0100H0100 A930 MOV R1,30H0102 122000 LCALL
7、SUB0105 8A40 MOV 40H,R20107 8B41 MOV 41H,R30109 80FE SJMP $ END子程序:出口条件为转换所得子程序:出口条件为转换所得BCD码存码存R2、R3 ORG 2000H2000E9SUB;MOVA,R1;取十六进制数200175F064MOVB,#64H200484DIVAB;除以1002005FAMOVR2,A;商为百位数存R22006740AMOVA,#0AH2008C5F0XCHA,B;除100余数作为下一次的被除数200A84DIVAB;余数再除以10200BC4SWAP A200C45F0ORLA,B;十位个位合并200EFBMO
8、VR3,A;十位个位合并存R3200F22RET 三、求最大值或最三、求最大值或最小值小值 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,
9、DPIR0109 B53002CJNEA,30H,HERE010C 8004SJMP TOSMA010E 4002 HERE:JCTOSMA0110 F530MOV30H,A ;大于30H取代原有值0112 DFF3 TOSMA:DJNZ R7,LOOP ;小于30H,继续比较0114 902040MOV DPTR,#2040H0117 E530MOV A,30H0119 F0MOVXDPTR,A011A 80FESJMP $END 2.2.带符号数求带符号数求最大值或最小值最大值或最小值例3-8组单字节带符号数据存放在以2042H为首地址的连续单元中,数据长度存放在2041H单元,找出的最大
10、值存于2040H单元。带符号数求最大值与最小值的程序带符号数求最大值与最小值的程序0100 ORG 0100H0100 90204l MOV DPTR,#2041H0103 EO MOVX A,DPTR0104 FF MOV R7,A0105 7900 MOV R1,#80H;开始R1存最小值-1280107 A3 LOOP: INC DPTR0108 E0 MOVX A,DPIR0109 FA MOV R2,A010A C3 CLR C010B 99 SUBB A,R1010C 20E705 JB ACC.7,MINUS010F 20D209 PLUS:JBOV,SMA0112 8005 S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 第三 汇编语言 程序设计 ppt 课件
限制150内