- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.5.1 简单程序设计 二、数制转换 例3-20 片内RAM的30H单元内存放着一8位二进制数,编写程序,将其转换成压缩的BCD码,分别存入30H和31H单元中,高位在30H中。 其方法是用除法实现。原数除以10,其余数为个位数,其余数再除以10,其商为百位数,余为十位数。对应程序段如下: 3.5.1 简单程序设计 MOV A,30H ;取数据 MOV B,#10 DIV AB ;除后个位在B,百十位在A MOV 31H,B ;个位存31H低4位 MOV B,#10 DIV AB ;除后十位在B,百位在A MOV 30H,A ;保存百位 MOV A,B ;十位数送A SWAP A ;十位数被交换到高4位 ORL 31H,A ;十位数存于31H高4位 SJMP $ 3.5.2 分支程序设计 分支程序:程序根据不同的条件,转向不同的处理程序,这种结构的程序称为分支程序。 实现分支程序的方法:借助于条件转移指令、比较转移指令和位转移指令,可以实现程序的分支处理。 在汇编语言程序中,分支结构是比较麻烦的,初学时应特别小心。 3.5.2 分支程序设计 一、一般分支程序 例3-21 片内RAM的30H、31H单元存放着两个无符号数,编写程序比较其大小,将其较大者存于30H中,较小者存于31H单元中。 用减法判断,两个数相减后,通过借位标志位CY来判断。程序段如下: 3.5.2 分支程序设计 MOV A,30H CLR C SUBB A,31H JNC L1 ;(30H)≥(31H)转 MOV A,30H ;(30H)小两数交换 XCH A,31H MOV 30H,A L1: SJMP $ 3.5.2 分支程序设计 例3-22 片内RAM的30H单元内存放着一有符号二进制数变量X,其函数Y与变量X的关系为: X+5 X>20 Y= 0 20≥X≥10 -5 X<10 编写程序,根据变量值,将其对应的函数值送入31H中。 这是一个三分支的条件转移程序,可以使用CJNE、JC、JNC等指令进行判断。程序流程图如图3-6所示,程序段如下: 3.5.2 分支程序设计 X=(30H)→A (A) 10 ? Y=-5 N Y 图3-6 例3-22程序流程图 开 始 Y=0 (A) 20 ? Y=X+5 Y N 结 束 Y → 31H 3.5.2 分支程序设计 MOV A,30H CJNE A,#10,L1 L1: JNC L2 ;X≥10转L2 MOV 31H,#0FBH ;X<10, Y=-5 SJMP L4 L2: ;X≥10 ADD A,#5 ;先按X>20, Y=X+5 MOV 31H,A CJNE A,#26,L3 L3: JNC L4 ;X>20,转 MOV 31H,#0 ;20≥X≥10, Y=0 L4: SJMP $ 3.5.3 循环程序设计 循环程序一般由以下几个部分组成: 1)循环初始化部分:用于对循环变量、其它变量和常量赋初值,做好循环前的准备工作。 2)循环体部分:这一部分由重复执行部分和循环控制部分组成。 3)循环结束部分:这一部分用于存放循环结果、恢复所占用寄存器或内存的数据等。 循环程序的关键是对循环变量的修改和控制,特别是循环次数的控制。 3.5.3 循环程序设计 一、单层循环程序 例3-23 在片内RAM的30H~3FH单元,存放着16个无符号字节数据,编写程序,计算这16个数的和。 16个字节数的和不会超过两个字节,将和存于40H、41H中,高字节在40H中。用R0作取加数指针,用DJNZ和R7控制循环。 流程图如图3-7所示,程序段如下。 3.5.3 循环程序设计 3.5.3 循环程序设计 MOV R0,#31H ;R0指向31H单元 MOV R7,#15 ;控制循环次数初值 MOV 40H,#0 ;和高字节清0 MOV A,30H ;取第一个加数 LP:ADD A,@R0 ;低字节加上一个数 JNC NT ;无进位跳转 INC 40H ;有进位高字节加1 NT:INC R0 ;指针增1 DJNZ R7,LP ;R7减1不为0循环 MOV 41H,A ;保存低字节数据 SJMP $ 3.5.3 循环程序设计 例3-24 设计一软件延时10ms的子程序。设晶振频率为6MHz。 机器周期为2μs。子程序如下: DELAY10MS: ;机器周期
有哪些信誉好的足球投注网站
文档评论(0)