请教cmp指令 汇编语言 微机原理
答案:3 悬赏:0 手机版
解决时间 2021-03-26 03:47
- 提问者网友:暮烟疏雨之际
- 2021-03-25 16:29
请教cmp指令 汇编语言 微机原理
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-03-25 17:44
cmp是汇编的比较指令;
cmp(compare)指令的作用:进行比较两个操作数的大小;
例如:
cmp oprd1,oprd2
为第一个操作减去第二个操作数,但不影响第两个操作数的值;
它影响flag的CF,ZF,OF,AF,PF
怎么判断大小呢?
若执行指令后;
ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0
当无符号时:
若
CF=1 则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1 CF=0 则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2
当有符号时:
若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2
若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1 若SF=0,OF=1 则说明了此时的值为正数,有溢出,可以看出oprd1 若SF=1,OF=1则说明了此时的值为负数,有溢出,可以看出oprd1>oprd2
最后两个可以作出这种判断的原因是,溢出的本质问题:
两数同为正,相加,值为负,则说明溢出;
两数同为负,相加,值为正,则说明溢出;
故有,正正得负则溢出,负负得正则溢出。
cmp(compare)指令的作用:进行比较两个操作数的大小;
例如:
cmp oprd1,oprd2
为第一个操作减去第二个操作数,但不影响第两个操作数的值;
它影响flag的CF,ZF,OF,AF,PF
怎么判断大小呢?
若执行指令后;
ZF=1 这个简单,则说明两个数相等,因为zero为1说明结果为0
当无符号时:
若
CF=1 则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1
当有符号时:
若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2
若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1
最后两个可以作出这种判断的原因是,溢出的本质问题:
两数同为正,相加,值为负,则说明溢出;
两数同为负,相加,值为正,则说明溢出;
故有,正正得负则溢出,负负得正则溢出。
全部回答
- 1楼网友:春色三分
- 2021-03-25 18:42
括号里只能放bx,si,di,bp寄存器,其它的不合规则。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯