
汇编语言中的取反运算为什么不影响标志位
5个回答
展开全部
个人见解:
ZF:只有被执行取反的数所有位都是"1"的时候结果才为0,并且取反是按位的,所以每一位可能都有其自己的意义,这时整个数是不是0已经无关紧要了
所以,ZF位无意义
PF:取反指令执行后不会影响到被取反的数中的"1"的个数是奇数还是偶数.因为取反后"1"的个数就是 位长-原来"1"的个数 很显然,一个偶数减一个奇数结果还是奇数,一个偶数减一个偶数结果还是偶数
所以,PF位无意义
SF:不可能对有符号数进行取反操作,这是无意义的,转换补码有专门的指令
所以,SF位无意义
CF:取反指令不可能产生进位
所以,CF位无意义
OF:取反指令也不可能产生溢出
所以,OF位无意义
让一个没有意义的东西存在有什么意义呢?浪费CPU效率么?
有同意我的么 - -
ZF:只有被执行取反的数所有位都是"1"的时候结果才为0,并且取反是按位的,所以每一位可能都有其自己的意义,这时整个数是不是0已经无关紧要了
所以,ZF位无意义
PF:取反指令执行后不会影响到被取反的数中的"1"的个数是奇数还是偶数.因为取反后"1"的个数就是 位长-原来"1"的个数 很显然,一个偶数减一个奇数结果还是奇数,一个偶数减一个偶数结果还是偶数
所以,PF位无意义
SF:不可能对有符号数进行取反操作,这是无意义的,转换补码有专门的指令
所以,SF位无意义
CF:取反指令不可能产生进位
所以,CF位无意义
OF:取反指令也不可能产生溢出
所以,OF位无意义
让一个没有意义的东西存在有什么意义呢?浪费CPU效率么?
有同意我的么 - -
展开全部
汇编的取反运算原理是将4位16进制数转换成16位2进制机器码~也就是1010.。。
然后将101010这些东西取反~1的变成0~0的变成1~跟标志位貌似没多大关系
然后将101010这些东西取反~1的变成0~0的变成1~跟标志位貌似没多大关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是这样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个恐怕得去问CPU厂家了,他们把指令设计成不影响标志位的。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是汇编语言的规定,没有什么原因
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询