【发布时间】:2020-01-08 19:22:36
【问题描述】:
我有这个代码:
mov rax, 0x93f3ffc2fbc7a1ce
mov rbx, 0x5862d8a05a385cbe
imul eax, ebx
imul 如何用于 64 位汇编?溢出的aex会写在rax的前32位吗?
【问题讨论】:
-
它的工作方式与 32 位模式相同。
-
Why do x86-64 instructions on 32-bit registers zero the upper part of the full 64-bit register? 或 x86_64 registers rax/eax/ax/al overwriting full register contents 的可能重复项,尽管我不确定您所说的“溢出”是什么意思,或者您从哪个方向计算位。通常,寄存器的“第一”位是低位;我们将它们从 0 (lsb) 到 63 (msb) 编号。 PowerPC 编号从顶部开始,但 x86 没有。