单片机第六章汇编语言程序设计.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第六章汇编语言程序设计.ppt

第六章汇编语言程序设计 汇编语言的基本知识 常用汇编程序设计方法 汇编语言的基本知识 汇编语言的基本知识 汇编语言的格式 LABLE:OPCODE ,OPRAND ;OMMENT 汇编语言的构成 指令性语句 指示性语句:伪指令 程序设计流程 伪指令 ORG : ORG 2000H END EQU: AAA EQU 20H MOV A,20H (MOV A,AAA) DATA (可前可后) DB 、DW BIT :A1 BIT 00H(MOV C,A1) 程序设计流程 明确要求和要达到的目的 确定解决问题的计算方法和步骤 画出流程图 分配内存地址 按流程图编写程序 上机汇编、调试、修改及最后确定源程序 $2 简单程序(顺序结构) 大量使用数据传送类指令 注意正确选择指令以提高效率 编程将20单元内的两个BCD熟变换成ACSII码放在20H, 21H单元内(EX2.ASM) 将20H单元内两个BCD码变换成相应的ASCII码放在21H:22H中 Org 0h Ljmp 2000h ORG 2000H MOV R0,#22H MOV @R0,#00 MOV A,20H XCHD A,@R0 ORL 22H,#30H SWAP A ORL A,#30H MOV 21H,A SJMP $ END 15BYTE ,11T MOV A,20H MOV B,#10H DIV AB ORL B,#30H MOV 22H,B ORL A,#30H MOV 21H,A SJMP $ END ;15BYTE 14T 求16位二进制补码的绝对值 MOV A,20H CPL A ADD A,#01H ;INC A MOV 20H,A MOV A,21H CPL A ADDC A,#0 ANL A,#7FH MOV 21H,A SJMP $ $6.3 分支程序 根据程序要求无条件或有条件改变程序执行执行的顺序,选择程序的流向. 特点:程序中含有转移类指令 关键:正确选用转移指令 正确运用转移指令 无条件分支程序 程序设计者事先设计好的 LJMP、AJMP 、SJMP 有条件分支程序 根据已经执行的程序对标志位、ACC或内部RAM的某些位的影响结果决定程序的流向 JZ/JNZ、CJNE、DJNZ、位控制转移类指令 注意 使用条件转移指令形成分支前一定安排可供条件转移指令进行判别的条件。 JC LOOP 正确选定所用的转移条件及转移目标地址 $循环程序 循环初始化 循环次数计数器,工作寄存器设初值等 循环体 尽量简练;注意地址指针的修改 循环控制 检查结束条件,及时退出循环 注意循环嵌套 允许外重循环嵌套内重循环 循环体不能交叉 不能从循环程序外部跳入循环程序内部 例 例:200名学生参加考试,成绩放在8031的外部RAM的一个连续存储单元,95~100分颁发A级证书,90~94分颁发B级证书,编一程序,统计获A、B级证书的人数。将结果存入内部RAM的两个单元。 注意地址指针的分配 ORG 0030H EG XDATA 1000H GA DATA 20H GB DATA 21H MOV GA,#00 MOV GB,#00 MOV DPTR,#EG MOV R2,#200 LOOP:MOVX A,@DPTR CJNE A,#95, LOOP1 LOOP1: JNC NEXT1 CJNE A,#90,LOOP2 LOOP2: JC NEXT INC GB SJMP NEXT NEXT1: INC GA NEXT: INC DPTR DJNZ R2,LOOP SJMP $ END 数据排序 常用气泡法(两两比较法)它先使E100和E99进行比较,若E100>E99,则两数交换,否则不动,然后E99和E98进行比较,按同样的原则,决定是否交换,一直比较下去,最后完成E2和E1的比较及交换。经过N-1次比较后,E1位置必然得到数组中的最大值。犹如一个气泡冒到水顶。如此下去,经过N-1次便完成N个数据的排序。 例:100个数据,从小到大进行排序 MOV R2,#100 BUB:MOV R0,#20H CLR F0 DEC R2 BL:CJNE R2,#0,BB MOV 7F,R2 MOV 20H,@R0 MOV A,@R0 INC R0 MOV 21H,@R0 CJNE A,21H,LOP LOP: JC B MOV @R0,20H DEC R0 MOV @R0,21H INC R0 SETB F0 B:DJNZ 7FH,BL JB F0,BUB BB:SJMP $ $查表程序的设计 主要用于: 复杂代码转换显示 数据补偿:传感器补偿 复杂函数计算:

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档