精选MCS-51单片机指令系统和汇编语言程序示例.ppt

精选MCS-51单片机指令系统和汇编语言程序示例.ppt

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

例23 将R1、R2、R3、R4四个工作寄存器中的BCD码数据依次相加,要求中间计算结果与最后的和都仍为BCD码,且存入片内RAM。 设四个工作寄存器中的BCD码数据相加后其和仍为2位BCD码,无溢出;(R1)+(R2)后的和存入片内RAM的30H单元,再加(R3)后的和存入31H单元,总的和存入32H单元。则主程序为: ORG 0050H MOV R0,#30H MOV A,R1 3.6.2 条件转移指令 条件转移指令是当某种条件满足时,程序转移执行;条件不满足时,程序仍按原来顺序执行。转移的条件可以是上一条指令或更前一条指令的执行结果(常体现在标志位上),也可以是条件转移指令本身包含的某种运算结果。由于该类指令采用相对寻址,因此程序可在以当前PC值为中心的-128~+127范围内转移。该类指令共有8条,可以分为累加器判零条件转移指令、比较条件转移指令和减1条件转移指令三类。表3.5中列出了这些指令。 表3.5 条件转移指令 1.判零条件转移指令 判零条件转移指令以累加器A的内容是否为0作为转移的条件。JZ指令是为0转移,不为0则顺序执行;JNZ指令是不为0转移,为0则顺序执行。累加器A的内容是否为0,是由这条指令以前的其它指令执行的结果决定的,执行这条指令不作任何运算,也不影响标志位。 例17 将片外RAM首地址为DATA1的一个数据块转送到片内RAM首地址为DATA2的存储区中。 外部RAM向内部RAM的数据转送一定要经过累加器A,利用判零条件转移正好可以判别是否要继续传送或者终止。完成数据传送的参考程序如下: MOV R0,#DATA1 ;R0作为外部数据块的地址指针 MOV R1,#DATA1 ;R1作为内部数据块的地址指针 LOOP: MOVX A,@R0 ;取外部RAM数据送入A HERE: JZ HERE ;数据为零则终止传送 MOV @R1,A ;数据传送至内部RAM 单元 INC R0 ;修改指针,指向下一数据地址 INC R1 SJMP LOOP ;循环取数 2.比较转移指令 比较转移指令共有4条。这组指令是先对两个规定的操作数进行比较,根据比较的结果来决定是否转移。若两个操作数相等,则不转移,程序顺序执行;若两个操作数不等,则转移。比较是进行一次减法运算,但其差值不保存,两个数的原值不受影响,而标志位要受到影响。利用标志位CY作进一步的判断,可实现三分支转移。 例18 当从P1口输入数据为01H 时,程序继续执行,否则等待,直到P1口出现01H。参考程序如下: MOV A,#01H ;立即数01H送A WAIT: CJNE A,P1,WAIT ;(P1)≠01H,则等待 3.减1条件转移指令 减1条件转移指令有两条。每执行一次这种指令,就把第一操作数减1,并把结果仍保存在第一操作数中,然后判断是否为零。若不为零,则转移到指定的地址单元,否则顺序执行。这组指令对于构成循环程序是十分有用的,可以指定任何一个工作寄存器或者内部RAM单元作为循环计数器。每循环一次,这种指令被执行一次,计数器就减1。预定的循环次数不到,计数器不会为0,转移执行循环操作;到达预定的循环次数,计数器就被减为0,顺序执行下一条指令,也就结束了循环。 例19 将内部RAM从DATA单元开始的10个无符号数相加,相加结果送SUM单元保存。 设相加结果不超过8位二进制数,则相应的程序如下: MOV R0,#0AH ;设置循环次数 MOV R1,#DATA ;R1作地址指针,指向数据块首地址 CLR A ;A清零 LOOP: ADD A,@R1 ;加一个数 INC R1 ;修改指针,指向下一个数 DJNZ R0,LOOP ;R0减1,不为0循环 MOV SUM,A ;存10个数相加的和 3.7 子

文档评论(0)

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

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

1亿VIP精品文档

相关文档