这方面我不大懂,但想说说个人的一点看法:
1.最高有效位并不等于最高位;最高有效位是对无符号数而言的,在无符号数中,最高位就是最高有效位,而在有符号数中,有最高位但没有最高有效位,因为最高位是用来表示正负值的.
2.CBW 和 CWD 都是符号扩展的指令.注意:是符号扩展,不是零扩展!在有符号数中,最高位要么是零(正数),要么是1(负数);这两个指令的作用就是,要么扩展零(如果是正数的话),要么扩展1(如果是负数的话).
例:执行:
mov al,7f
cbw
mov al,8f
cbw
第一次cbw,AH中是0,因为第一次扩展的是正数,它的最高位为0;
第二次cbw,AH中是FF,因为第二次扩展的是负数,它的最高位为1;
其它类推.