单片机控制技术与应用(刘靖)3研讨.ppt

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

② 如果位3需借位,则置“1”AC,否则清“0” AC。 ③ 如果位6需借位,而位7不需要借位,或者位7需 借位,位6不需借位,则置“1”溢出标志位OV,否 则清“0”OV。 例如:(A)=C9H,(R2)=54H,CY=1,执行指令: ? 结果:(A)=74H,CY=0,AC=0,OV=1(位6向位7借 位) (6)减1指令 4条指令: ? 减1指令不影响标志位。 (7)乘法指令  ????? 执行MUL指令后,C被清零,积大于255,则置“1” 溢出标志位OV。 (8)除法指令 ? 如果B的内容为“0”(即除数为“0”),则存放结 果A、B中的内容不定,并置“1”溢出标志位 OV。 3.8.3 逻辑运算指令 (1)简单逻辑操作指令 ①? 功能是累加器A清“0”。不影响CY、AC、OV 等标志。 ②? 功能是将累加器A的内容按位逻辑取反,不影响 标志。 (2)左环移指令 ? 功能是累加器A的8位向左循环移位,位7循环移 入位0,不影响标志。 (3)带进位左环移指令   ? 功能是将累加器A的内容和进位标志位CY一起 向左环移一位,A.7移入进位位CY,CY移入A.0,不 影响其他标志。 (4)右环移指令   ? 功能是累加器A的内容向右环移一位,ACC.0移 入ACC.7,不影响其他标志。 (5)带进位环移指令         ? 这条指令的功能是累加器A的内容和进位标志 CY一起向右环移一位,ACC.0进入CY,CY移入 ACC.7。 (6)累加器半字节交换指令 将累加器A的高半字节(SWAP AACC.7~ACC.4) 和低半字节(ACC.3~ACC.0)互换。 例如:(A)=0C5H,执行指令: ?   结果:(A)=5CH (7)逻辑与指令 ? 例如:(A)=07H,(R0)=0FDH,执行指令: ?    结果:(A)=05H (8)逻辑或指令 ? 例如:(P1)=05H,(A)=33H,执行指令 ?     结果:(P1)=37H (9)逻辑异或指令 ? 例如:(A)=90H,(R3)=73H,执行指令: ?    结果:(A)=E3H 3.8.4 控制转移类指令 (1)无条件转移指令 ? 2KB范围内的无条件跳转指令。64KB程序存储 器空间分为32个区,每个区2KB,转移的目标地址 必须与AJMP下一条指令的地址的高5位地址码 A15~A11相同。 执行指令时,先PC加2,然后把addr11送入PC.10~ PC.0,PC.15~PC.11保持不变,程序转移到目标地 址。 本指令是为能与MCS-48的JMP指令兼容而设 的。 (2)相对转移指令 ? 实现的程序转移是双向的。 在编写程序时,直接写上要转向的目标地址标号 就可以。 例如:     ????? 程序在汇编时,由汇编程序自动计算和填入偏移 量。 手工汇编时,偏移量rel的值则需程序设计人员计 算。 (3)长跳转指令 ? 指令执行时把指令的第2和第3字节分别装入PC 的高位和低位字节中,无条件地转向addr16指出 的目标地址。目标地址可以在64KB程序存储器 地址空间的任何位置。 (4)间接跳转指令 ? 由A中8位无符号数与DPTR的16位数内容之和 来确定。以DPTR内容作为基址,A的内容作变 址。 给A赋予不同的值,即可实现程序的多分支转 移。 (5)条件转移指令 规定的条件满足,则进行转移,条件不满足则顺序 执行下一条指令。 当条件满足时,把PC装入下一条指令的第1个字 节地址,再把带符号的相对偏移量rel加到PC上, 计算出目标地址。 ? (6)比较不相等转移指令 ? 比较前面两个操作数的大小,如果它们的值不相 等则转移。 如果第一操作数(无符号整数)小于第二操作数 (无符号整数),则置进位标志位CY,否则清“0” CY。 (7)减1不为0转移指令 这是一组把减1与条件转移两种功能结合在一起 的指令。共两条指令: ? 将源操作数(Rn或direct)减1,结果回送到Rn寄存 器或direct中去。如果结果不为0,则转移。允许 程序员把寄存器Rn或内部RAM的direct单元用作 程序循环计数器,主要用于控制程序循环。以减1 后是否为“0”作为转移条件,即可实现按次数控 制循环。 (8)调用子程序指令 ① 短调用指令 ? 与AJMP指令相类似,是为了与MCS-48中的 CALL指令兼容而设的。 ② 长调用指令 ? (9)子程序的返回指令 ? 堆栈指针SP指出堆栈的栈顶位置。 进栈指令 ? 先将栈指针SP加1,然后把direct中的内容送到栈 指针SP指示的内部RAM单元中。例如:当(SP)=6 0H,(A)=30H,(B)=70H时,执行: ? 结果:(61H)=30H,(62H)=70H,(SP)=62H 出栈指令 ????? SP指示的栈顶

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档