(最详细!)汇编原理中OF(溢出)和CF(进位)的判断方法
(最详细!)汇编原理中OF(溢出)和CF(进位)的判断⽅法
关于这个问题百度查了半天,都没有⽐较全⾯的解释,所以我来了!
⾸先我们需要知道,al是⽤两位16进制的数来保存数据的, 所以正数最多保存0~255(⼗进制),FFH
处理器内部以补码表⽰有符号数,8个⼆进制位能够表达的整数范围是:+127 ~ -128
那么补码怎么求呢?
如下:
正数的补码就是其本⾝
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
瞬杀特性
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
⼀定要注意,正数的补码是他本⾝,我⾝边很多⼈搞不懂下⾯这玩意,都是因为忘了正数的补码就是本⾝,然后傻乎乎的⽤负数⽅法去求正数补码
例1:
3AH + 7CH=B6H
⽆符号数运算:58+124=182,范围内,⽆进位(<255)
有符号数运算: 58+124=182 ,范围外,有溢出(>127)
例2:AAH + 7CH=(1)26H
⽆符号数运算:170+124=294,范围外,有进位(>255)
有符号数运算:-86+124=28 ,范围内,⽆溢出(-128<28<127)
上⾯有符号运算⾥,58和-86不知道怎么来的同学不要急,
接着往下看:
再来说说书上的例⼦:
这⾥是王爽的《汇编语⾔(第三版)》P218
mov al,0F0H 240(⼗进制)
add al,88H 136(⼗进制)
⽆符号运算:al=240+136=376>255 所以有进位,CF=1
有符号运算:al=-16-120=-136<-128所以有溢出,OF=1
mov al,0F0H 240(⼗进制)
add al,78H 120(⼗进制)
⽆符号运算:al=240+120=360>255 所以有进位,CF=1
本科一批是一本吗>田赛和径赛
有符号运算:al=-16+120=104,-128<104<127 所以⽆溢出,OF=0小年祝福语简短
卫浴五金挂件具体的计算过程如下:
看懂书上这个例⼦就差不多了,
西藏旅游景点大全
然后我们再带⼊之前的那个例⼦根据步骤计算,不难得到58和-86的值
就是这么简单

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。