【发布时间】:2021-03-30 08:39:35
【问题描述】:
如果整数总是能够放入 16 位寄存器,那么使用 32 位寄存器存储等于或小于 16 位的整数会不会效率低?
mov eax, 180 ; Is this overkill?
另外,如果我将相同的整数存储在 16 位寄存器中,并且预计它会通过用户输入增长为大于 16 位的整数,我是否应该使用 16 位寄存器直到它需要 32-位寄存器还是最初从 32 位寄存器开始以节省以后移动到它?
【问题讨论】:
-
使用16位寄存器实际上是8位、32位和64位寄存器中最差的
-
在大数组上操作时只需要关心大小,因为这会影响单个高速缓存行或单个 SIMD 寄存器中可以容纳多少元素。在单个值中总是更喜欢原生 int 大小