原码1和补码-1和为0,这完美吗?我觉得不。
其一,反汇编出来的同一机器码有二义性,比如0xff你可以说它是255也可以说它是-1,至于是哪个只有设计程序的人知道了。
其二,既然同一个机器码有二义性,那么用它时也就要区别开来,增加新的指令。mul啦imul啦div啦idiv啦,ja,jg,jl,jb……这些有什么区别?反正我是晕菜了。这多出的指令可是要占用指令编码空间的啊。
其一,反汇编出来的同一机器码有二义性,比如0xff你可以说它是255也可以说它是-1,至于是哪个只有设计程序的人知道了。
其二,既然同一个机器码有二义性,那么用它时也就要区别开来,增加新的指令。mul啦imul啦div啦idiv啦,ja,jg,jl,jb……这些有什么区别?反正我是晕菜了。这多出的指令可是要占用指令编码空间的啊。