2个回答
展开全部
进位标志CF(Carry Flag)的定义:
当加减运算结果的最高有效位有进位(加法)或借位(减法)时,将设置进位标志为1,即CF=1;如果没有进位或借位,则设置进位标志为0,即CF=0。
这是说,处理器执行一个加法或者减法指令,对两个数据进行了相加或者相减,除了一个和值或者一个差值外;如果出现最高位的进位或者借位,在标志寄存器中的这个进位标志CF位就被处理器设置成为1。
假设处理器执行二进制8位数据加法指令,实现8位二进制数:00111010和01111100相加。
运算结果是:10110110。
运算过程中,最高位没有向上再进位,所以这个运算结果将使得:CF=0。
如果是10101010和01111100相加,结果是[1]00100110。
注意,8位运算指令只指明8位和值保存在何处,出现的第9位、即向高位的进位(用了中括号表达)进入了标志寄存器CF位,所以这个运算结果将使得:CF=1。
进位标志是针对无符号整数运算设计的,反映无符号数据加减运算结果是否超出范围、是否需要利用进(借)位反映正确结果。
把上面两个例子,分别用二进制、十六进制和十进制表达出来,可能你理解得更好。
当加减运算结果的最高有效位有进位(加法)或借位(减法)时,将设置进位标志为1,即CF=1;如果没有进位或借位,则设置进位标志为0,即CF=0。
这是说,处理器执行一个加法或者减法指令,对两个数据进行了相加或者相减,除了一个和值或者一个差值外;如果出现最高位的进位或者借位,在标志寄存器中的这个进位标志CF位就被处理器设置成为1。
假设处理器执行二进制8位数据加法指令,实现8位二进制数:00111010和01111100相加。
运算结果是:10110110。
运算过程中,最高位没有向上再进位,所以这个运算结果将使得:CF=0。
如果是10101010和01111100相加,结果是[1]00100110。
注意,8位运算指令只指明8位和值保存在何处,出现的第9位、即向高位的进位(用了中括号表达)进入了标志寄存器CF位,所以这个运算结果将使得:CF=1。
进位标志是针对无符号整数运算设计的,反映无符号数据加减运算结果是否超出范围、是否需要利用进(借)位反映正确结果。
把上面两个例子,分别用二进制、十六进制和十进制表达出来,可能你理解得更好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询