电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
楼主: cyc20180228

PICmicro微控制器指令集

[复制链接]
 楼主| 发表于 2018-12-16 21:32:42 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-16 22:01 编辑

     PICmicro微控制器没有十分广泛的算术或逻辑地改变数据值的指令,在PICmicro微控制器中执行7个专门操作(由15个以上指令实现)看起来可能并不那么有系统,但它们却形成一个卓越的工作基础,在这些操作的基础上可以实现更复杂的操作。
    在PICmicro微控制器中,加法是以一种直接的方式实现的:
    1)addwf指令的格式是:
    addwf Reg,d
    周期:1
    标识位:Z=d/0
            C=d>0x0FF
            DC=d>0x0F
            d=Reg + "W"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 21:58:52 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-16 22:02 编辑

      上述加法由addwf指令给定的寄存器的内容加到w寄存器的内容上,并把结果保存在所确定的寄存器或w寄存器中。
      2)addlw如果用于把一个立即数(常量)加到w寄存器,指令格式:
      addlw Const
      周期:1
      标识位:
      Z =Result
      C =Result
      DC=Result
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 22:21:18 | 显示全部楼层
     3)减法是把一个负数加到另一个数上去的加法,指令格式:
     subwf Reg ,d
     周期:1
     标识位:
      Z=d/0
      C=d>0x0FF
      DC=d>0x0F
      d=Reg + (-"W")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-16 22:41:11 | 显示全部楼层
    4)sublw使用了subwf同样的减法操作,指令格式:
    sublw Const
      周期:1
      标识位:
      Z =Result
      C =Result
      DC=Result
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 19:16:20 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-17 19:28 编辑

     注意在16C5X型器件中没有addlwsublw 指令可用。
     寄存器可使用incfdecf 指令给它自身的值加1或减1。
     5)递增操作一个寄存器的指令格式:
     incf Reg ,d
     周期:1
     标识位:
     Z=Reg + 1
     d=Reg + 1
     6)递减操作一个寄存器的指令格式:
     decf Reg ,d
     周期:1
     标识位:
     Z=Reg - 1
     d=Reg - 1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 19:26:26 | 显示全部楼层
   7)使一个寄存器的内容反相的指令格式:
   comf Reg ,d
   周期:1
   标识位:
    Z= d | 0
    d=Reg^0x0FF
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 20:23:39 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-17 21:12 编辑

      除了算术运算,PICmicro微控制器也能够执行逐位逻辑运算功能AND、OR 和 XOR ,
      PICmicro微控制器有两个AND 指令:andlwandwf
      8) andwf 的指令格式:
       andwf Reg , d
       这里 d 确定 AND运算的结果是保存在w寄存器还是Register
      9) andlw 的指令格式:
       andlw Const
      
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 20:41:38 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-17 21:12 编辑

     OR 运算也有两个指令:iorlwiorwf
     10) iorwf 指令格式
     iorwf Reg ,d
     周期:1
     标识位:
       Z= d | 0
       d=Reg | "w"
     11)iorlw 指令格式
     iorlw Const
      周期:1
      标识位:
      Z =Result
   
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 21:02:52 | 显示全部楼层
本帖最后由 cyc20180228 于 2018-12-17 21:13 编辑

     XOR 异或运算也有两个指令:xorlwxorwf
     12) xorwf 指令格式
     xorwf Reg ,d
     周期:1
     标识位:
       Z= d | 0
       d=Reg | "w"
     13) xorlw 指令格式
     xorlw Const
      周期:1
      标识位:
      Z =Result
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-17 21:51:43 | 显示全部楼层
     14)左移位或向上移动一位( rlf )指令格式
     rlf Reg ,d
     周期:1
     标识位:
      Z =Reg.7
      D = Reg<<1+C
     15)右移位或向下移动一位( rrf )指令格式
     rrf Reg ,d
     要想移动一个寄存器的内容而不丢失一位位值还有一个小技巧,即执行下面的指令:
     rrf Reg ,w
     rrf Reg ,f
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|APP|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-3-29 18:45 , Processed in 0.066488 second(s), 4 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

快速回复 返回顶部 返回列表