1
yuekunlun 2020-04-16 19:24:03 +08:00
1 、首先要看硬件架构
2 、要看具体指令 对 x86 架构 mov load 这种是原子的 |
2
Mohanson 2020-04-16 19:24:43 +08:00 via Android
太宽泛了,举个例子,如果两个 u8 相加,u8 会先 zero extend 或 sign extend 成 u32 到 32 位寄存器中然后执行两个 u32 加法;
但是 extend 并非单独的指令,而是 u8 加法 alu 的一部分。 |
3
Mohanson 2020-04-16 19:25:58 +08:00 via Android
误,是 load 的一部分,extend 操作是 load 指令的一部分
|
4
dapang1221 2020-04-16 19:29:02 +08:00
虽然确实是这样,但这问题有点怪,运算数据不是“只要小于 32”,而是只能等于 32,因为数据线的宽度就是 32,一次肯定只能载入一个数据,否则加法器的进位全乱了没法用了。。
|
5
BigDogWang OP 有这个问题是在看 《程序是怎么跑起来的》 这本书有的疑问。
具体点的说法就是: 在工作频率相同的情况下,处理大于 32 位的数据时 64 位处理器,要比 32 位快; 但是如果处理的数据都小于 32 位,是不是 64 位和 32 位的速度是一样的? |