查阅PIC单片机芯片手册,关于进位/借位位的说明为:

C:进位/借位位。

1 = 结果的最高位发生了进位

0 = 结果的最高位未发生进位

同时有一条标注:借位的极性是相反的。

通过以上说明,可以将C的分析分为两种情况:

1、加法:

最高位发生了进位:C = 1;

最高位未发生进位:C = 0;

2、减法:

最高位发生了借位:C = 0;

最高位未发生借位:C = 1;

为了加深理解,在MPLAB中写入一段代码,通过观测STATUS寄存器的值来测试以上分析:

1 ;测试SUBWF、ADDWF指令与状态寄存器C标志位的关系

2

3 LIST        P=16F684

4 include     "P16F684.INC"

5

6 Sub_Register_Small    EQU        20H

7 Sub_Register_Large    EQU        21H

8 Add_Register          EQU        22H

9 Small_Status          EQU        23H

10 Large_Status          EQU        24H

11 Add_Status            EQU        25H

12

13 ;被减数 < 减数

14 MOVLW        54H

15 MOVWF        Sub_Register_Small

16 MOVLW        66H

17 SUBWF        Sub_Register_Small, F

18

19 SWAPF        STATUS, W            ;保存状态寄存器值

20 MOVWF        Small_Status

21 SWAPF        Small_Status, F

22

23 ;被减数 > 减数

24 MOVLW        77H

25 MOVWF        Sub_Register_Large

26 MOVLW        66H

27 SUBWF        Sub_Register_Large, F

28

29 SWAPF        STATUS, W            ;保存状态寄存器值

30 MOVWF        Large_Status

31 SWAPF        Large_Status, F

32

33 ;加法进位

34 MOVLW        77H

35 MOVWF        Add_Register

36 MOVLW        0BBH

37 ADDWF        Add_Register, F

38

39 SWAPF        STATUS, W            ;保存状态寄存器值

40 MOVWF        Add_Status

41 SWAPF        Add_Status, F

42

43 END

启用仿真后,查看内存23H、24H、25H(保存的是以上三种操作后的STATUS)的值,结果如下:

Small_Status  : 00011000B,对应C=0(最高位发生了借位)

Large_Status : 00011011B,对应C=1(最高位未发生借位)

Add_Status    : 00011011B,对应C=1(最高位发生了进位)

为了简单便于记忆,可以把C的进/借位规则记为:加柴(1)做煎(减)蛋(0)!

pic c语言 位标志,PIC单片机状态寄存器中的C(进位/借位位标志)相关推荐

  1. pic c语言按键程序,PIC的C语言使用

    <PIC的C语言使用>由会员分享,可在线阅读,更多相关<PIC的C语言使用(9页珍藏版)>请在人人文库网上搜索. 1.PIC的c语言使用在MPLAB-IDE中使用HitechC ...

  2. 【汇编】标志寄存器中的标志位

    各标志在标志寄存器中的位置 一.运算结果标志位 1.进位标志位CF 进位标志CF主要用来反映运算是否产生进位或借位. 运算结果的最高位产生了一个进位或借位,那么,CF=1,否则CF=0. 2.零标志Z ...

  3. 51单片机auxr寄存器_STC12C5A60S2单片机AD采样程序及其寄存器讲解

    /*************************************************************************************************** ...

  4. 在1 MB RAM中排序100万个8位数字

    本文翻译自:Sorting 1 million 8-digit numbers in 1 MB of RAM I have a computer with 1 MB of RAM and no oth ...

  5. pic单片机c语言乘除法,PIC单片机C语言程序设计(2)

    五.C语言的标识符和关键字本文引用地址:http://www.eepw.com.cn/article/171168.htm 一个完整的PICC语言程序,通常由包含文件(即头文件1,变量定义.变量说明. ...

  6. pic单片机c语言存储器定义,PIC单片机C语言程序设计1 7.PDF

    PIC单片机C语言程序设计1 7 学电子跟我来FOLLOW ME PIC 单片机C 语言程序设计(1) ◆ 丁锦滔 编者按:为了帮助具有PI C 单片机汇编语言知识的技术人员或工程师,快速掌握利用C ...

  7. 《我和PIC单片机:基于PIC18》——第1章 初识PIC 1.1 与众不同的PIC

    第1章 初识PIC 我们可以把单片机简单地理解成单芯片计算机.经过多年的发展,单片机的内涵被不断丰富,越来越多的功能被赋予给了这个单芯片计算机,使得其功能变得愈发强大.可以说,在单片机的江湖中,家族林 ...

  8. Great Cow BASIC (大母牛BASIC)一个开源的8位芯片PIC和Atmel AVR微控制器的BASIC编译器

    Great Cow BASIC (大母牛BASIC编辑器) Great Cow BASIC 0.98.02(Great Cow Graphical BASIC)是一个开源的8位芯片PIC和Atmel ...

  9. c语言画曲线程序,单片机 LCD C语言画弧线的程序,哪位高手会

    当前位置:我的异常网» 单片机 » 单片机 LCD C语言画弧线的程序,哪位高手会 单片机 LCD C语言画弧线的程序,哪位高手会 www.myexceptions.net  网友分享于:2013-0 ...

最新文章

  1. saiku执行过程代码跟踪
  2. 每日一皮:给老板演示刚做好的功能...
  3. 模块化和组件化的定义以及两者的区别
  4. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
  5. 一文讲透 Git 底层数据结构和原理
  6. [PAT乙级]1010 一元多项式求导
  7. Android Service与Thread的区别
  8. IIS Tomcat共享80端口
  9. arm9处理器 java_ARM处理器系列介绍
  10. 参考 雷霄骅https://blog.csdn.net/leixiaohua1020/article/list/28
  11. 2004世界五百强企业
  12. 服务器要使用两张网卡做bond0以实现网络冗余和提高带宽
  13. 融资租赁产品计算内部收益率IRR
  14. 打印端口用计算机名,如何设置打印机端口,教您设置电脑打印机端口
  15. 西电 计算机学院 博后流动站,西电7个博士后科研流动站接受专家组综合评估检查...
  16. 微信接入机器人实现对别人消息和群at消息的自动回复
  17. 当出现Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this
  18. 简单两步解决UCenter忘记创始人UCenter Administrator密码
  19. P3084 [USACO13OPEN]照片Photo(差分约束)
  20. 无线通信技术学习笔记——概述

热门文章

  1. c语言实数加法程序,蓝桥杯 算法提高 实数相加(c语言版附注释)
  2. Chpater2.3 执行AD HOC命令
  3. React 高阶组件HOC使用总结
  4. 如何截取视频片段 批量截取片段的方法 1
  5. 安全多方计算之GMW协议
  6. 小型直播系统系列-乐聊TV的开发(三)
  7. java path.resolve_Java Path.resolve方法代碼示例
  8. 【光通信】Wi-Fi联盟——Wi-Fi 7与Wi-Fi 6相比到底有哪些变化
  9. GitHub 忘记SSH密钥
  10. 医院建网站需要多少钱?