简单的网站维护,上海网站建设网页制作培训,中职电子商务专业就业方向,广东专业企业网站建设刚刚看到了cmp指令#xff0c;一开始有点晕。后来上网找了些资料#xff0c;终于看明白了#xff0c;为了方便初学者#xff0c;我就简单写下我的思路吧。高手绕过#xff0c;谢谢#xff01;
cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减…刚刚看到了cmp指令一开始有点晕。后来上网找了些资料终于看明白了为了方便初学者我就简单写下我的思路吧。高手绕过谢谢
cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减去第二个操作数,但不影响第两个操作数的值,它影响flag的CFZFOFAFPF. 我们怎么判断大小呢
若执行指令后:ZF1,则说明两个数相等因为zero为1说明结果为0.
当无符号时
若CF1,则说明了有进位或借位cmp是进行的减操作故可以看出为借位所以此时oprd1oprd2;
CF0,则说明了无借位但此时要注意ZF是否为0若为0则说明结果不为0故此时oprd1oprd2.
当有符号时
若SF0OF0 则说明了此时的值为正数没有溢出可以直观的看出oprd1oprd2;
若SF1OF0 则说明了此时的值为负数没有溢出则为oprd1oprd2;
若SF0OF1 则说明了此时的值为正数有溢出可以看出oprd1oprd2;
若SF1OF1则说明了此时的值为负数有溢出可以看出oprd1oprd2;
最后两个可以作出这种判断的原因是溢出的本质问题
两数同为正相加值为负则说明溢出
两数同为负相加值为正则说明溢出
故有正正得负则溢出负负得正则溢出
很简单的一条指令初学者看看我感觉我写的还挺详细的哈哈……
补充 两数相减同号则不溢出;两数为异号结果与减数符号相同则溢出。