提问人:Towa 提问时间:7/31/2023 最后编辑:Peter CordesTowa 更新时间:8/1/2023 访问量:45
GNU 汇编。“Movq %rsp, %rax” 被组装成一个只有 3 字节的二进制文件。不是 8 字节。为什么?[复制]
GNU assembly. "Movq %rsp, %rax" is assembled into a only 3 byte binary. Not 8 byte.Why? [duplicate]
问:
我在 64 位处理器上使用 GNU 汇编。我汇编了以下代码
movq %rsp,%rax
之后,我对二进制代码进行 objdump。
我得到了以下内容:
401000: 48 89 e0 mov %rsp,%rax
我以为我会看到一个 8 字节的二进制指令,因为我的处理器是 64 位,但只有 3 字节的指令。
当 CPU 解码 3 字节指令时,它是否会被填充到 8 字节指令中?
例如:
48 49 e0 -> 48 49 e0 00 00 00 00 00
答: 暂无答案
评论