试题详情
简答题简述无符号数和带符号数的特点?
  • 1)用CF可检测无符号数是否溢出,用OF可检测带符号数是否溢出;
    2)无符号数运算结果溢出是在超出了最大的表示范围这唯一的原因下发生的,溢出也就是产生进位,这不能叫出错。因此,在多字节数的相加过程中,正是利用溢出的CF来传递低位字节向高位字节的进位;而带符号数运算产生溢出就不同了,它是由Cs和C。两种综合因素表示的,一当发生溢出,就表示运算结果出错。
    这种情况的出现在于,在CPU内部,有符号数依然是作为无符号数来运算的,即符号位也是要参与运算的,所以会出错。
    算术运算指令涉及的操作数从表示的进制来讲,可以是二、十六进制数,也可以是BCD码表示的十进制数,因一位BCD码用4位二进位表示,因此操作数为BCD十进制数时,是不带符号的十进制数。十进制数运算所得结果,应加校正指令进行调整,8086专门设有对BCD码运算结果进行调整的各种指令。
    8086算术运算指令可用的BCD码有两种;一种叫组合的BCD码(Packed BCD),即l个字节表示2位BCD码;另一类叫非组合的BCD码(UnPacked BCD),用这类代码时,1个字节只用低4位来表示l位BCD码,高4位为0(无意义)。
    算术运算指令的特点有:
    1)在加、减、乘、除基本运算指令中,除±1指令外,都具有两个操作数;
    2)这类指令执行后,除±1指令不影响CF标志外,对CF,OF,ZF,SF,PF和AF等6位标志均可产生影响,由这6位状态标志反映的操作结果的性质如下:
    ①当无符号数运算产生溢出时,CF=l;
    ②当带符号数运算产生溢出时,OF=1;
    ③当运算结果为零,ZF=l;
    ④当运算结果为负,SF=1;
    ⑤当运算结果中有偶数个1,PF=1;
    ⑥当操作数为BCD码,半字节间出现进位,需要进行BCD码调整,AF=1。
  • 关注下方微信公众号,在线模考后查看

热门试题