汇编语言第11章 无符号数与有符号数大小比较

无符号比较
cmp al,3
若al=3则ZF为1
若al≠3则ZF为0
若al<3则CF为1
若al≤3则CF为1或ZF为1
若al>3则CF为0,ZF为0
若al≥3则CF为0或ZF为1

有符号比较
cmp al,3
若OF为0,SF为1则al<3
若OF为0,SF为0且ZF为0则al>3
若OF为0,SF为0且ZF为1则al=3
若OF为1,SF为1则al>3
若OF为1,SF为0则al<3

溢出有两种情况。第一种是负数溢出,第二种是正数溢出。若是负数溢出则是向正数范围溢出,所以逻辑结果为正数实际结果为负数。若是正数溢出则是向负数范围溢出,所以逻辑结果为负数实际结果为正数。
在0~255中
[0,127]为正数区间
[128,255]为负数区间
若正数区间最大数127+1=128就会溢出到负数区间
若负数区间最小数128-1=127就会溢出到正数区间(若果不理解就把负数区间转化为有符号数)
所以说 如果因为溢出导致了实际结果为负,那么逻辑上真正结果必然为正
如果因为溢出导致了实际结果为正,那么逻辑上真正结果必然为负。
128有符号数是-128,-128-1=-129结果溢出,溢出到正数区间。

你可能感兴趣的:(汇编相关)