欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    教学课件微机原理(第2版)3.16 基本程序设计ppt(全).pptx

    • 资源ID:71827258       资源大小:1.22MB        全文页数:30页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    教学课件微机原理(第2版)3.16 基本程序设计ppt(全).pptx

    教学课件微机原理(第2版)3.16 基本程序设计2学习内容:基本程序设计目标:掌握设计基础程序的方法第3章 8051指令系统和汇编程序设计3第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-21:数据块传送程序。设在以M为起始地址的内部RAM中存有100个单字节数,试编一程序,把这100个数传送到以N为起始地址的外部RAM中。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计解:以R0做为源数据所在内部RAM地址的指针,R1做为目标外部RAM的地址指针,R2做为循环计数控制变量。编写循环程序实现数据传送。ORG 0100H START:MOV R0,#M MOV R1,#NMOV R2,#64H LP:MOV A,R0 MOVXR1,A INC R0 INC R1 DJNZR2,LP SJMP$END3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计6第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-22:试求内部RAM 30H37H单元中8个无符号数的算术和,2字节结果存入38H,39H单元中。ORG 0100H START:MOV R3,#0 MOV R7,#7H MOV R0,#31H MOV A,30H 解:8个无符号数累加,相加次数由R7控制;相加过程的进位位(累加和的高字节内容)累计在R3中。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计例3-22:试求内部RAM 30H37H单元中8个无符号数的算术和,2字节结果存入38H,39H单元中。解:8个无符号数累加,相加次数由R7控制;相加过程的进位位(累加和的高字节内容)累计在R3中。LOOP:ADD A,R0JNC NEXTINC R33.5.2 基本程序设计第3章 8051指令系统和汇编程序设计例3-22:试求内部RAM 30H37H单元中8个无符号数的算术和,2字节结果存入38H,39H单元中。解:8个无符号数累加,相加次数由R7控制;相加过程的进位位(累加和的高字节内容)累计在R3中。NEXT:INC R0DJNZ R7,LOOPMOV 39H,R3MOV 38H,ASJMP$END9第3章 8051指令系统和汇编程序设计例3-23:设有16位二进制数存放在内部RAM的50H(高字节)及51H(低字节)单元中,要求将其算术左移一位(即原数各位均向左移1位,最低位移入0)后仍存放在原单元。3.5.2 基本程序设计3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计解:16位数据左移,要求将低字节的高位移到高字节的最低位,需要采用带C的循环左移指令。先将进位标志C清零,对低字节进行循环左移,此时C的内容0进入其最低位,其最高位进入C;再对高字节进行带C的循环左移,此时C(低字节的最高位)进入高字节的最低位,从而实现16位数据的整体左移一位。ORG 0200HSTRAT:CLR C ;Cy清零 MOV A,51H RLC A ;低8位向左循环移1位 MOV 51H,A MOV A,50H ;高8位向左循环移1位 RLC A MOV 50H,A END3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计12第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-24:设变量x存在30H单元,按下式关系求函数y的值并存入31H单元。x+1 (x10)y=0 (10 x5)x1 (x5)解:要根据x的大小来决定y值,在判断x10时,采用CJNE和JC以及CJNE和JNC指令进行判断,用R0暂存y的值。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计14第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-24:设变量x存在30H单元,按下式关系求函数y的值并存入31H单元。方法方法1:汇编程序:汇编程序:ORG 1000H START:MOV A,30H ;取X CJNE A,#5,NEXT1;与5比较 NEXT1:JC NEXT2 ;X10,Y=X+1 CJNE A,#11,NEXT3;与11比较 3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计例3-24:设变量x存在30H单元,按下式关系求函数y的值并存入31H单元。方法1:汇编程序:NEXT3:JNC NEXT4 ;X10,则转NEXT4 MOV R0,#0 ;10 x5,Y=0 SJMP NEXT4 NEXT2:MOV R0,A DEC R0 ;X10,则转NEXT2 MOV R0,A DEC R0 ;设X10,Y=X+1 CJNE A,#5,NEXT3;与5比较 3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计例3-24:设变量x存在30H单元,按下式关系求函数y的值并存入31H单元。方法2:汇编程序:NEXT3:JC NEXT4 ;X10,Y=X+1 NEXT4:MOV 31H,R0 ;存结果 RET END18第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-25:在外部RAMBLOCK单元开始有一组带符号数的数据块,数据块长度存放在内存LEN单元中。试统计其中正数,负数和零的个数,并分别存入内存PCOUNT、MCOUNT和ZCOUNT单元中。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计解:逐一取出每个数,首先判断该数为 正数或负数或0?为正数,则PCOUNT单元加1;为负数,则MCOUNT单元加1;为零,则ZCOUNT单元加1。20第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计判断一个数据是正数、负数和0的方法:1.先判是否为0,再根据最高位是0或1,判正负。MOVX A,DPTR JZ ZERO ;0,转移到ZERO JB ACC.7,NEG ;负,转移到NEG POS:;正的处理3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计2.先判是否为0,然后与80H比较判正负。小于80H为正数,反之为负数。MOVXA,DPTR JZ ZERO ;0,转移到ZERO CJNE A,#80H,NEXT NEXT:JNC NEG ;负,转移到NEG POS:;正的处理22第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计(方法1:取出数,然后判断其最高位是1还是0)程序:BLOCK EQU 2000H;定义数据块首址 LEN EQU 30H ;定义长度计数单元 PCOUNT EQU 3lH ;正计数单元 MCOUNT EQU 32H ;负计数单元 ZCOUNT EQU 33H ;零计数单元 ORG 0200HSTART:MOV DPTR,#BLOCK ;地址指针指向数据块首址 MOV PCOUNT,#0;MOV MCOUNT,#0 ;计数单元清0 MOV ZCOUNT,#0 ;LOOP:MOVX A,DPTR ;取一个数23第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计程序:JB ACC.7,MCON;若ACC.7=1,转负数个数1 JNZ PCON ;若(A)0,转正数个数1 INC ZCOUNT ;若(A)=0,则零的个数加1 AJMP NEXT ;MCON:INC MCOUNT ;负计数单元加1 AJMPNEXT ;PCON:INC PCOUNT ;正计数单元加1NEXT:INC DPTR ;修正地址指针,指向下一个单元 DJNZ LEN,LOOP;未完继续 SJMP$END24第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计(方法2:取出数,与数值80H进行比较)程序:BLOCK EQU 2000H;定义数据块首址 LEN EQU 30H ;定义长度计数单元 PCOUNT EQU 3lH ;正计数单元 MCOUNT EQU 32H ;负计数单元 ZCOUNT EQU 33H ;零计数单元 ORG 0200HSTART:MOV DPTR,#BLOCK ;地址指针指向数据块首址 MOV PCOUNT,#0;MOV MCOUNT,#0 ;计数单元清0 MOV ZCOUNT,#0 ;LOOP:MOVX A,DPTR ;取一个数25第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计 CJNE A,#80H,NEXT1 ;若(A)0,转正数个数1NEXT1:JNC MCON ;(A)80H,负计数单元加1 JZ ZCON ;若(A)=0,则零的个数加1 INC PCOUNT ;正计数单元加1 AJMP NEXT ;ZCON:INC ZCOUNT ;0计数单元加1NEXT:INC DPTR ;修正地址指针,指向下一个单元 DJNZ LEN,LOOP ;未完继续 SJMP$END26第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-26:把内存中起始地址为DAT的数据串,传送到外部RAM以BUFFER为首 址的区域,直到发现“$”的ASCII码(24H)为止,数据串的长度在内存20H中。解:循环控制条件有2个。首先是找到“$”的ASCII码结束循环,属条件控制,也是循环主结构;其次是计数循环控制,即若找不到“$”的ASCII码,则由数据串的长度控制循环结束。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计 DAT EQU 30H BUFFER EQU 1000H ORG 0100HSTART:MOV R0,#DAT ;内RAM首址 MOV DPTR,#BUFFER;外RAM首址 LOOP:MOV A,R0 CJNE A,#24H,LOOP2 ;判是否为$SJMP LOOP1 ;是$,则结束LOOP2:MOVX DPTR,A ;不是$,传送 INC R0 INC DPTR DJNZ 20H,LOOP ;数据串未查完,继续LOOP1:RET28第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-27:已知内部RAM从BLOCK单元开始有一个无符号数的数据块,其长度在LEN单元,试编程求出数据块中的最大值,并存入MAX单元。ORG2000H MOVMAX,#00H;MAX清0 MOVR0,#BLOCK;R0指向数据块的首地址LOOP:MOVA,R0;取出数据块中数据送A CLRC ;C清0 SUBBA,MAX;(A)和(MAX)的数据相减,形成Cy JCNEXT ;若(A)(MAX),则大的数送MAXNEXT:INCR0 ;指向下一数据 DJNZLEN,LOOP END解:(方法1,利用减法指令)先将MAX单元清0,再把它和数据块中的数据逐一比较,若MAX中的数值大,则比较下一个,否则把数据块中的数据送入MAX后再进行下一个数的比较,直到每个数都比较完毕。用R0作为数据块的地址指针。29第3章 8051指令系统和汇编程序设计3.5.2 基本程序设计例3-27:已知内部RAM从BLOCK单元开始有一个无符号数的数据块,其长度在LEN单元,试编程求出数据块中的最大值,并存入MAX单元。解:(方法2:利用比较指令)先将MAX单元清0,再把它和数据块中的数据逐一比较,若MAX中的数值大,则比较下一个,否则把数据块中的数据送入MAX后再进行下一个数的比较,直到每个数都比较完毕。用R0作为数据块的地址指针。3.5.2 基本程序设计第3章 8051指令系统和汇编程序设计 ORG 2000H MOVMAX,#00H;MAX清0 MOVR0,#BLOCK;R0指向数据块的首地址LOOP:MOVA,R0;取出数据块中数据送A CLRC ;C清0 SUBBA,MAX;(A)和(MAX)的数据相减,形成Cy JCNEXT ;若(A)(MAX),则大的数送MAXNEXT:INCR0 ;指向下一数据 DJNZLEN,LOOP END

    注意事项

    本文(教学课件微机原理(第2版)3.16 基本程序设计ppt(全).pptx)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开