cpu是怎么知道当前进行的是有符号运算还是无符号运算呢

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:42:50
cpu是怎么知道当前进行的是有符号运算还是无符号运算呢

我们平时写的高级语言的代码被编译器“翻译成”汇编代码,然后再进一步“翻译成”机器代码。
CPU执行的是机器代码,而机器代码几乎就是汇编代码的直接翻译。
在汇编代码中,对于加减法,有符号与无符号是没有任何区别的。
有符号与无符号的区别只在乘除法、向高位扩展、向右移位等地方。
对于有符号于无符号,分别有不同的指令来处理。
例如,下面的指令都把数值当作无符号处理:
mul div movzx shr
与之相对应的,下面的指令都把数值当作有符号处理:
imul idiv movsx sar