欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机汇编.ppt

    • 资源ID:5815559       资源大小:323.01KB        全文页数:15页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机汇编.ppt

    2.3 汇编语言程序设计,汇编语言程序设计,主要内容,1.汇编语言格式及构成2.汇编源程序设计步骤及汇编3.顺序程序设计4.分支程序设计5.循环和查表程序设计6.子程序设计,2.3.1 汇编语言格式,标号段:操作码段 操作数段;注释段如:LP1:MOV R2,#10;设置循环次数标号段:指明所在指令操作码字节所在的内存地址。标号由大写英文字母开头的字母和数字串组成,长度为18个字符。标号段可省略。,2.3.2 汇编语言构成,1.指令性语句(助记符语句)2.指示性语句(伪指令)a.ORG(起始汇编)伪指令 例:ORG 2000H;指定程序存储地址从2000H开始 b.END(结束汇编)伪指令 例:END c.EQU(赋值)伪指令 字符名称 EQU 数据或汇编符;将右边的数据或汇编符赋给左边的字符名称,汇编语言格式及构成,例如:AA EQU R1;AA当作寄存器R1使用 A10 EQU 10H;A10=10H DELAY EQU 07E6H;DELAY=07E6H MOV R0,A10 MOV A,AA LCALL DELAY,d.DATA(数据地址赋值)伪指令 字符名称 DATA 表达式;将右边表达式(8位)赋左边,;只能是数据或地址等DATA型 字符名称 XDATA 表达式;16位 例:AA DATA 35H DELAY XDATA 0A7E6H,e.DB(字节定义)伪指令 标号:DB 项或项表 例:TAB:DB 45H,73,A;将45H、73、A依次存放;入TAB地址开始的存储单元,汇编语言格式及构成,f.DW(字定义)伪指令 标号:DW 项或项表例:ORG 1000H HETAB:DW 1234H,8AH,10;(1000H)=12H,(1001H)=34H;(1002H)=8AH,(1003H)=00H,(1004H)=0AH,(1005H)=00H,g.DS(存储空间定义)伪指令 标号:DS 项或项表例:SPC:DS 08H;从SPC地址开始,预留8个存储单元 DB 25H;(SPC+8)=25H,h.BIT(位地址赋值)伪指令 字符名称 BIT 位地址例:A1 BIT 00H A2 BIT P1.0 MOV C,A1;将位地址00H的值送Cy,汇编语言格式及构成,返回,2.3.3 汇编源程序设计步骤及汇编,源程序设计步骤:1)拟定设计任务书,设计任务书包括:程序功能、技术指标、精度等级、实施方案、工程进度、所需设备、研制费用、人员分工2)建立数学模型3)确立算法4)绘制程序流程图5)编制汇编语言源程序6)上机调试汇编语言源程序的汇编人工汇编机器汇编,汇编语言格式及构成,返回,2.3.4 顺序程序设计,例题1:求一个16位二进制负数的补码。设此16位二进制数存于NUM、NUM+1单元,解:补码=反码+1ORG 1000HNUM DATA 20HMOV R0,#NUMMOV A,R0 CPL AADD A,#01HMOV R0,AINC R0 MOV A,R0 CPL AADDC A,#00HMOV R0,ASJMP$END,顺序程序设计,返回,课7,2.3.5 分支程序设计,分支程序设计,例题2:已知VAR单元内有一自变量X,按如下条件编出求函数值Y并将它存入FUNC单元的程序若X0,则Y=1;若X=0,则Y=0;若X0,则Y=-1。,ORG 1000HVAR DATA 30HFUNC DATA 31HMOV A,VARJZ DONE;若VAR=0,则转DONEJNB ACC.7,POS;若VAR0,则转POSMOV A,#0FFH;若VAR0,-1给ASJMP DONE,POS:MOV A,#01HDONE:MOV FUNC,A SJMP$END,返回,2.3.6 循环和查表程序设计,循环和查表程序设计,例题3:已知内部RAM ADDR为始址的无符号数数据块的块长存储于LEN单元内,请编程找出数据块中的最大数并存入MAX单元,解:ORG 1000H LEN DATA 31H MAX DATA 32H MOV R0,#ADDR;R0指向数据块,初始化为数据块首地址 MOV MAX,#00H;MAX单元初始化,清零LOOP:MOV A,R0;开始循环体,将一个数取到A CJNE A,MAX,BRCH;比较该数与MAX的大小BRCH:JC NEXT;若该数小,则进行下一次循环 XCH A,MAX;若该数大,则与MAX交换NEXT:INC R0;为下一次循环做准备 DJNZ LEN,LOOP;判断循环次数 SJMP$END,返回,例题4:R0的低四位对应一个16进制数码,编写程序,将该数码对应字符的ASCII编码送入R1。(例如:若R0的低4位为1110B,对应16进制数码E,则将字符E的ASCII码送入R1),解:ORG 1000H MOV A,R0 ANL A,#0FH ADD A,#03H MOVC A,A+PC;查表指令 MOV R1,A;指令长度为一个字节 SJMP$;指令长度为两个字节ASCTAB:DB 0,1,2,3,4;制表 DB 5,6,7,8,9 DB A,B,C,D,E,F END,循环和查表程序设计,2.3.7 子程序设计,子程序可自动保护断点(即主程序中下一条指令的地址),但不会自动保护现场(即运行子程序前的寄存器状态),若要保护现场,则在子程序的开始部分用压入堆栈命令保护现场,在结束部分用弹出堆栈命令恢复现场 可利用寄存器、存储单元或堆栈进行子程序的入口参数和出口参数传递,例题5:设MDA和MDB内有两数a和b,请编出求c=a2+b2并把c送入MDC的程序,设a和b皆为小于10的整数,子程序设计,ORG 1000H MDA DATA 20H MDB DATA 21 MDC DATA 22H MOV A,MDA;入口参数传递 ACALL SQR;调用子程序 MOV R1,A MOV A,MDB ACALL SQR ADD A,R1 MOV MDC,A SJMP$SQR:ADD A,#01;子程序 MOVC A,A+PC RET;RET为一个字节SQRTAB:DB 0,1,4,9,16;平方表 DB 25,36,49,64,81 END,子程序设计,练习1:外部RAM从2000H到2100H有一数据块,请编出将它们传送到3000H到3100H区域的程序。练习2:某系有200名学生参加外语统考,若成绩存放在8031外部RAM始址为ENGLISH的连续存储单元,现决定给成绩在95分100分之间的学生颁发A级合格证书,给成绩在90分94分之间的学生颁发B级合格证书。试编一程序,可以统计A级和B级证书的学生人数,并把统计结果分别存入内部RAM的GRADA和GRADB单元。练习3(思考):已知:在内部RAM中,共有两组无符号四字节被加数和加数分别存放在FIRST和SECOND为始址的区域(低字节在前,高字节在后),请编程求和(设和也为四字节),并把和存于SUM开始的区域。练习4:已知MDA和MDB内分别存有两个小于5的整数,请用查表子程序实现C=a2+2ab+b2,并把和存于MDC单元练习5:设晶振频率为6MHz,试编写一能延时20ms的子程序。,汇编语言程序设计,练习6(思考):已知内部RAM单元MA和MB中分别有两个有符号数,请编一减法子程序,并把差存入RESULT和RESULT+1中问题:有符号数的减法,如(-98)-98因为98D=62H=0110 0010B-98D=1001 1110则 1001 1110B-0110 0010B=0011 1100B=3CH=3*16+12=60,结果不对算法:将带符号数进行两字节扩展,则高字节的各个位都与符号位相同-98=1111 1111 1001 1110B 98=0000 0000 0110 0010B(-98)-98=1111 1111 0011 1100B 为负数,转换为10进制数:减1取反得0000 0000 1100 0100B=00C4H=196 即结果为-196,与笔算结果一致。练习7(思考):设8031单片机外部RAM从1000H单元开始存放100个无符号8位二进制数。要求编一子程序能把它们从大到小依次存入片内RAM从10H开始的存储区。问题:需考虑排序的算法,汇编语言程序设计,本章小结,掌握顺序程序、分支程序、循环和查表程序、子程序的设计,

    注意事项

    本文(单片机汇编.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开