cmp指令的相关知识

日期:2021-04-10 15:52:54 | 人气:

对于刚刚接触cmp指令的小伙伴来说,看着可能会有点晕,下面是小编从网上整理的一些资料,希望能够帮到大家。

CMP指令,英文名为Chip multiprocessors,翻译成中文就是单芯片多处理器,也指多核心其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。与CMP相比,SMT处理器结构的灵活性比较突出。

cmp(compare)指令进行比较两个操作数的大小

例如:cmpoprd1,oprd2

为di一个操作减去di二个操作数,

但是不影响第两个操作数的值

它影响flag的CF,ZF,OF,AF,PF

我们应该如何判断大小呢?

如果执行指令后

ZF=1 这个简单,那么就说明两个数相等,因为zero为1说明结果为0

当无符号时:

如果

CF=1 那么就说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,因此,此时oprd1<oprd2

CF=0 那么就说明了无借位,但是此时需要注意ZF是否为0,如果是0,那么就说明结果不为0,故此时oprd1>oprd2

当有符号时:

如果SF=0,OF=0 那么就说明了此时的值为正数,没有溢出,可以看出oprd1>oprd2

如果SF=1,OF=0 那么就说明了此时的值为负数,没有溢出,可以看出oprd1<oprd2

如果SF=0,OF=1 那么就说明了此时的值为正数,有溢出,可以看出oprd1<oprd2

如果SF=1,OF=1那么就说明了此时的值为负数,有溢出,可以看出oprd1>oprd2

下面两个可以作出这种判断的原因是,溢出的本质问题:

两数同为正,相加,值为负,那么就说明溢出

两数同为负,相加,值为正,那么就说明溢出

故有,正正得负则溢出,负负得正则溢出

补充说明:两数相减,同号,则不溢出;

两数为异号,结果与减数符号相同,则溢出。

关于cmp指令的相关知识就介绍到这里,更多cmp资讯,请关注云星数据官网。