单选题 汇编语言中的CMP比较指令所设置标志位的不同状态,代表着两个操作数的不同关系。当两个无符号数进行比较,则在比较指令之后,可以根据CF标志位的状态来判断两个数的大小,如在“CMP AX,BX”中,当CF标志位置位时,表示______。
【正确答案】 B
【答案解析】本题考查汇编语言方面的基础知识。
比较运算指令CMP的性质跟检测位指令TEST相似,在程序中,通常需要根据某个变量或表达式的取值去执行不同的指令,从而使程序表现出不同的功能。为了配合这样的操作,在CPU的指令系统中提供了各种不同的比较指令,通过这些比较指令的执行来改变有关的标志位,为进行条件转移提供依据。
汇编中的CMP指令是一条比较指令,对比两个操作数的大小,但是计算机并不理解大小,它只是对两个操作数进行了一次减法操作,然后对一些标志位进行了一些逻辑运算来判断哪个数大,常用的标志位如下:
CF:是否有进位或者借位
ZF:0标志位,就是结果是否为0
OF:溢出标志位,是否计算结果溢出了
SF:符号位,0为正,1为负
AF:辅助进位标志位
PF:奇偶标志位
CMP指令的格式为CMP op1 op2, 用到的标志位有CF、ZF、OF、SF 4个,对于两个无符号数的情况,两数相减不可能溢出,查看CF和ZF标志位就可以。如果ZF为1,则说明结果是0;如果ZF为0,同时CF为1,表示有借位,op1<op2,否则op1>op2。