06-第四章 程序设计.ppt

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

第四章:MCS-51程序设计 计算机与通信工程学院 李耀明 一、汇编语言概述 1、指令系统 语句格式 [标号]:操作码[操作数];[注释] 指令编码长短:单字节,双字节,三字节 执行周期:一个机器周期占12个振荡周期,单周期指令,双周期,4周期 寻址方式: 指令中所规定的寻找操作地址的方式 立即、直接、寄存器、寄存器间接寻址、基址加变址、相对寻址、位寻址 指令分类: 数据传送、算术、逻辑、位操作、控制转移 2、程序设计的步骤 (1)分析问题,编制说明要解决问题的程序框图。 (2)确定数据结构、算法、工作单元、变量设定(与高级语言不同) (3)根据所用的指令系统,按照已编制的程序框图用汇编语言编制出源程序。 (4)将编制出的程序在计算机上调试,直至实现预定的功能。 二、程序设计分类 1、顺序程序: 执行时按顺序一条条地执行指令 2、分支程序: 当程序不再顺序执行,而向一个方向或多个方向转移时,叫分支程序。 3、循环程序: 对于需要反复的程序段,常采用循环办法,以缩短程序。 4、子程序及其调用程序 主程序使用子程序时,用调用指令(ACALL),子程序最后放一条RET指令。 4.1 简单程序设计 简单程序又称顺序程序。计算机是按指令在存储器中存放的先后次序来顺序执行程序的。除非用特殊指令让它跳转,不然它会在PC控制下执行。 例4-1两个8位无符号数相加 ORG 0000H AJMP BEGIN ORG 0030H BEGIN: MOV 40H,#01H MOV 41H,#02H LOOP: MOV R0,#40H MOV A,@R0 INC R0 ADD A,@R0 INC R0 MOV @R0,A JMP LOOP END 例4-2将两个半字节数合并成一个单字节数 程序 ORG 0000H ajmp start org 0030H START: mov sp,#60H mov 40h,#01h mov 41h,#02h loop: MOV R1,#40H MOV A,@R1 ANL A,#0FH ;取第一个半字节 SWAP A INC R1 XCH A,@R1 ;取第二字节 ANL A,#0FH ;取第二个半字节 ORL A,@R1 ;拼字 INC R1 MOV @R1,A ;存放结果 AJMP $ END 执行完后如何不改变内存和寄存器的值? 4.2 分支程序设计 在处理实际事务中,只用简单程序设计的方法是不够的。因为大部分程序总包含有判断、比较等情况。 根据判断、比较的结果转向不同的分支 开始设置指针DPTR初始值 取第一个数存入R2取第二个数后者减前者进位标志是否为0?存后者结束存前者图5-3 例4流程 例4-3:两个无符号数比较大小 设两个连续外部RAM单元ST1和ST2中存放不带符号的二进制数,找出其中的大数存入ST3单元中。 ST1 EQU 8040H ORG 0000H JMP START ORG 0030H START: MOV DPTR,#ST1 MOV A,#12H MOVX @DPTR,A INC DPTR MOV A,#34H MOVX @DPTR,A LOOP: CLR C ;进位位清零 MOV DPTR,#ST1 ;设数据指针 MOVX A,@DPTR ;取第一数 MOV R2,A ;暂存R2 INC DPTR MOVX A,@DPTR ;取第二个数 SUBB A,R2 ; 两数比较 JNC BIG1 XCH A,R2 ;第一数大 BIG0: INC DPTR MOV

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档