第5章 MCS-51汇编语言程序设计.ppt

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

* 顺序结构 分支程序结构 循环程序结构 顺序程序是程序设计中的基本模块。顺序程序没有分支,从第一条指令开始依次执行每一条指令,直到最后一条,程序就算执行完毕。 特点:比较简单,能完成一定的功能,是构成复杂程序的基础。 * 看几个例题。 * 例1 功能:将单字节压缩BCD码(存于数据内存30H单元)分离转换成ASCII码放在31H、32H单元。 - 30H - 31H - 32H - 33H - 34H - 35H 36H 36H 38H 37H 68H 38H MOV 30H,#68H MOV A,30H;用除法分离 MOV B,#10H DIV AB;商6在A,余数8在B中 MOV 31H,B;转换成分离的BCD MOV 32H,A ORL 31H,#30H;存结果 ORL 32H,#30H * 例2 功能:将8位二进制数(存于数据内存30H单元)转换成三位分离的BCD码放在31H、32H 、32H单元。 - 30H - 31H - 32H - 33H - 34H 02H 35H 05H 36H 04H 37H FEH 38H MOV A,30H;用除法分离 MOV B,#10 DIV AB;商25在A,余数4个位在B中 MOV 31H,B MOV B,#10 DIV AB;商2百位在A,余数5十位在B中 MOV 32H,B ;存结果 MOV 33H,A 个 十 百 * 例3 功能(例2的逆运算):将三位分离的BCD码放在31H、32H 、32H单元转换成8位二进制数(存于数据内存30H单元) 。 - 30H - 31H - 32H - 33H - 34H 02H 35H 05H 36H 04H 37H FEH 38H MOV A,33H; MOV B,#10 MUL AB;积BA,最大20 ADD A,32H;百位乘以10加十位,在A中 MOV B,#10 MUL AB;再乘以10 ADD A,31H ;存结果 MOV 30H,A 个 十 百 * 处理过程:将30H单元的内容高3位屏蔽;31H单元内容的高5位屏蔽,高低四位交换,左移一位;然后与30H单元的内容相或,拼装后放到40H单元。 【例4】数据的拼拆 设在30H和31H单元中各有一个8位数据: (30H)=X7X6 X5X4X3X2X1X0 (3lH)=Y7Y6Y5Y4Y3Y2Y1Y0 现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果送40H单元保存,并且规定: (40H)=Y2Y1Y0X4X3X2X1X0 * (30H)=X7X6 X5X4X3X2X1X0 (3lH)=Y7Y6Y5Y4Y3Y2Y1Y0 (40H)=Y2Y1Y0X4X3X2X1X0 程序如下: ORG 0100H MOV A,30H ANL A, MOV 30H,A; MOV A,31H ANL A, ; SWAP A RL A ; ORL A,30H;组装 MOV 40H,A END (30H)=0 0 0 X4X3X2X1X0 A=Y2Y1Y0 0 0 0 0 0 A=0 0 0 0 0 Y2Y1Y0 * 查表 [例5] 功能:求变量X(0≤x≤5) 的平方 入口:X 值存放在片内RAM的 30H 单元 出口:X2 值存放在片内RAM的 31H 单元 ORG 0000H START: MOV DPTR,# TABLE MOV A,30H MOVC A,@A+DPTR MOV 31H,A;存结果 SJMP $ ORG 100H TABLE: DB 00,01,04,09,16,25 END - TABLE - 101H - 102H 19H 103H 10H 104H 09H 105H 04H 106H 01H 107H 00H 108H 程序存储器 * 例6 将内部RAM中20H单元和30H单元的无符号数相加,结果存入R0(高位)和R1(低位)中。 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV A,20H CLR C ADD A,30H MOV R1,A CLR A ADDC A,#00 MOV R0,A SJMP $ END * 结构:根据不同的条件,进行相应的处理。 通常用条件转移指令形成简单分支结构。 如: 判(A) = Z 或 NZ ,转移 判(CY)= 1 或 0 ,

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档