CHP4_51汇编程序设计举例.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 4.2 汇编语言程序设计 4.2.1 汇编语方程序设计步骤 4.2.2 顺序程序 4.2.3 分支程序 4.2.4 循环程序 4.2.5 子程序 4.2.6 位操作程序 4.2.1 汇编语方程序设计步骤 1.分析问题 2.确定算法 3.设计程序流程图 4.分配内存单元 5.编写汇编语言源程序 6.调试程序 4.2.2 顺序程序 顺序程序是一种最简单,最基本的程序。 特点:程序按编写的顺序依次往下执行每一条指令,直到最后一条。 【例4.1】 将30H单元内的两位BCD码拆开并转换成ASCII码,存入RAM(31H,32H)两个单元中。 分析:利用“与”拆开压缩BCD码(一个字节中有2个BCD码) 算法:见书P138, 数字的ASCII码为实际值加30H,如:0的ASCII码为30H,5的ASCII码为35H。 程序流程图:如图4-1所示。 分配内存单元:题目已定。 参考程序如下: ORG 0100H MOV A,30H ;取值 ANL A,#0FH ;取低4位 ADD A,#30H ;转换成ASCII码 MOV 32H,A ;保存低位结果 MOV A,30H ;取值 SWAP A ;高4位与低4位互换 ANL A,#0FH ;取低4位(原来的高4位) ADD A,#30H ;转换成ASCII码 MOV 31H,A ;保存高位结果 SJMP $ END 【例4.2】 设X、Y两个小于10的整数分别存于片内30H、31H单元,试求两数的平方和并将结果存于32H单元。 分析:两数均小于10,故两数的平方和小于200,可存放于一个字节的存储单元中。 算法:可利用乘法指令求平方。 程序流程如图4-2所示。 分配内存单元:题目已定。 参考程序如下: ORG 0100H MOV A,30H ;取30H单元数据 MOV B,A ;将X送入B寄存器 MUL AB ;求X2,结果在累加器中 MOV R1,A ;将结果暂存于R1寄存器中 MOV A,31H ;取31H单元数据 MOV B,A ;将Y送入B寄存器 MUL AB ;求Y2,结果在累加器中 ADD A,R1 ;求X2+ Y2 MOV 32H,A ;保存数据 SJMP $ ;暂停 END 4.2.3 分支程序 1.分支程序的基本形式 分支程序有三种基本形式,如图4-3所示。 分支程序的设计要点如下: (1)先建立可供条件转移指令测试的条件。 (2)选用合适的条件转移指令。 (3)在转移的目的地址处设定标号。 2.双向分支程序设计举例 【例4.3】 设X存在30H单元中,根据下式 X+2 X0 Y = 100 X=0 求出Y值,将Y值存入31H单元。 ∣X∣ X0 分析:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序流程如图4-4所示。 参考程序如下: ORG 1000H MOV A,30H ;取数 JB ACC.7,NEG;负数,转NEG JZ ZER0 ;为零,转ZER0 ADD A,#02H ;为正数,求X+2 AJMP SAVE ;转到SAVE,保存数据 ZER0:MOV A,# 100 ;数据为零,Y=100 AJMP SAVE ;转到SAVE,保存数据 NEG:DEC A ;补码的负数→正数 CPL A ;求∣X∣ SAVE:MOV 31H,A ;保存数据 SJMP $ ;暂停 3.多向分支程序设计举例 【例4.4】 根据R0的值转向7个分支程序。 R010,转向SUB0; 10≤R020,转向SUB1; 50≤R060,转向SUB5; R0≥60,转向SUB6; 解:利用JMP @A+DPTR 指令直接给PC赋值,使程序实现转移。程序流程如图4-5所示。 参考程序如下: MOV DPTR,#TAB ;转移指令表首地址 MOV A,R0 ;取数 MOV B,#10 DIV AB ;A除以10,商在A中,余数丢掉 CLR C RLC A ;A←2A,AJMP为2字节指令 JMP @A+DPTR ;PC ← A+DPTR TAB: AJMP SUB0 ;转移指令表 AJMP SUB1 …… AJMP SUB6 4.2.4

文档评论(0)

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

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

1亿VIP精品文档

相关文档