状态标志

  • 状态标志

状态标志一方面作为加减运算和逻辑运算等指令的辅助结果, 另一方面又用于构成各种条件, 实现程序分支, 是汇编语言编程中一个非常重要的方面。

  • 进位标志CF(Carry Flag)

(针对无符号整数)
处理器设计的进 (借) 位标志类似于十进制数据加减运算中的进位和借位,只不过是体现二进制数据最高位的进位或借位。 具体来说, 当加减运算结果的最高有效位有进位 (加法) 或借位 (减法) 时, 将设置进位标志为 1, 即CF=1; 如果没有进位或借位, 则设置进位标志为0,即CF=0. 换句话说, 加减运算后, 如果CF=1, 说明数据运算过程中出现了进位或借位; 如果CF=0, 说明没有进位或借位。
例如,有两个8位二进制数:00111010和01111100。如果将它们相加,运算结果是10110110。 运算过程中, 最高位没有向上再进位, 所以这个运算结果将使得CF=0。 但如果是0101010和01111100相加,结果是[1]00100110,出现了向高位进位(用中括号表示),所以这个运算结果将使得CF=1。
进位标志是针对无符号整数运算设计的, 用于反映无符号数据加减运算结果是否超出范围、是否需要利用进 (借) 位反映正确结果. N位二进制数表达无符号整数的范围是0-2"-1。 如果相应位数的加减运算结果超出了其能够表达的范围,就是产生丁进位或借位。
将上面例子中的二进制数据00111010+01111100=10110110转换成十进制表达是:58+124=182运算结果182仍在0~255范围之内,没有产生进位,所以CF-0。将二进制数据10101010+01111100=[1]00100110转换成十进制表达是:170+124=294=256+38 运算结果294超出了0~255范围, 所以将使得CF-1. 这里, 进位CF=1 表达了十进制数据256。

  • 溢出标志OF(Overflow Flag)
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值