8位扩展到16位,就是要在高位补8位。
补码的扩展法则是:负数的话,补8个1,正数的话,补8个0。如果一个负数:95H,扩展到16位就是是FF95H;如果一个正数:41H,扩展到16位就是是0041H
原码的扩展法则是:把符号位移到最高位,其他位补0
803BH,有符号位。
计算机中所有的数均用0,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。
在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零以补足n-1位。这种计算机的编码形式叫做原码。
用CBW和CWD扩展指令就可以实现;
CBW将一个字节数扩展为一个字长的数;
CWD将一个字操作扩展为双字。扩展后高16位在DX中;
扩展规则:高位添加符号位;
MOV AL.BBH
CBW
88H的原码为F8H
MOV AL,F8H
CBW
方法一:先转化为二进制编码为10001000
取反为01110111
前面补0够16位即前面补8个零0000000001110111
取反为1111111110001000