网站大量收购闲置独家精品文档,联系QQ:2885784924

《单片机原理及应用教程》第3章:mcs-51单片机的指令系统.ppt

《单片机原理及应用教程》第3章:mcs-51单片机的指令系统.ppt

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

MCS-51 单片机原理及应用教程 例3 利用ADDC指令可以进行多字节的加法运算。 设有两个16位数相加,被加数的高8位放在41H,低8位放在40H,加数的高8位放在43H,低8位放在42H,和的低8位存放在50H,高8位存放在51H,进位位存放在52H。可编程序如下: 例1 设(A)=0AAH,(R0)=55H,C=1,则执行指令: ADDC A, R0 运算结果:(A),AC=1,CY=1,OV=1。 例2 设(A)=35H,(40H)=21H,C=0,则执行指令: ADDC A, 40H 运算结果:(A)=56H,AC=0,CY=0,OV=0。 这与执行指令“ADD A, 40H”的结果是一样的。 SHJ: MOV A, 40H ;(A)←被加数低8位 ADD A, 42H ;与加数低8位相加 MOV 50H, A ;和的低8位存入50H MOV A, 41H ;(A)←被加数高8位 ADDC A, 43H ;被加数高8位与加数高8位以及低位来的进位相加 MOV 51H, A ;和的高8位存入51H单元 MOV A, #00H ;(A)←00H ADDC A, #00H ;(A)←(A) +00H+高8位来的进位 MOV 52H, A ;进位位C内容存入52H单元 … 3. 带借位减指令 指令助记符与功能说明如下: 寄存器寻址 ;(A)←(A)-(Rn)-(C) Rn A, SUBB 寄存器间接寻址 ;(A)←(A)-((Ri))-(C) @Ri A, SUBB 直接寻址 ;(A)←(A)-(direct)-(C) direct A, SUBB 立即寻址 ;(A)←(A)-data-(C) #data A, SUBB 源操作数寻址方式 功能说明 源操作数 目的操作数 例1 设(40H)=0BAH,(41H)=98H,试编写40H内容减去41H内容后,结果再存入40H单元的程序。 MOV A, 40H ;(A)←(40H) CLR C ;进位位C清0 SUBB A, 41H ;(A)←(A)-(41H) -(C) MOV 40H, A ;(40H)←(A) 执行以上程序后,(40H)=22H,CY=0,OV=0。 如果参与运算的两数为无符号数,则其溢出与否与OV状态无关,而是靠CY是否有借位来判断,OV仅仅表示带符号数运算时是否溢出。 例2 设有两个16位数相减,被减数的高8位放在41H,低8位放在40H,减数高8位放在43H,低8位放在42H,差的低8位存放在50H,高8位存放在51H,借位位存放在52H。 可编程序如下: SHJIAN: MOV A, 40H ;(A)←被减数低8位 CLR C ;C位清0 SUBB A, 42H ;减去减数低8位 MOV 50H, A ;差的低8位存入50H MOV A, 41H ;(A)←被减数高8位 SUBB A, 43H ;被减数高8位减去减数高8位与借位 MOV 51H, A ;差的高8位存入51H单元 MOV A, #00H ;(A)←00H ADDC A, #00H ;(A)←高8位的借位位 MOV 52H, A ;借位位C内容存入52H单元 1. 乘法指令 例1 设(A)=67H(103),(B)=0ADH(173),执行指令: MUL AB 运算结果:乘积为459BH(17819),(A)=9BH,(B)=45H。另外:OV=1,CY=0 3.4.2 乘除运算指令 MUL AB ;(A)←乘积低8位,(B)←乘积高8位 例2 设被乘数为16位无符号数,低8位存放在地址为K的单元,高8位存放在地址为K+1的单元。乘数为8位无符号数,存放在M单元。编程求出二者乘积,并将乘积的0~7位存放在R1,8~15位存放在R2,16~23位存放在R3中。 分析:16位无符号数与8位无符号数相乘的步骤示意如下: 程序编制如下: MOV R0, #K ;设置被乘数地址指针 MOV A, @R0 ;被乘数送A中 MOV B, M ;乘数送B中 MUL AB ;(K)×(M) MOV R1, A ;乘积的0~7位存入R1 MOV R2, B ;暂存积的8~15位 INC R0 ;指向被乘数高8位地址 MOV A, @R0 ;取被乘数高8位 MOV B, M ;乘数送B中 MUL

文档评论(0)

精华文库 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:7111022151000002

1亿VIP精品文档

相关文档