【问题标题】:MOV instruction sizeMOV指令大小
【发布时间】:2014-02-07 00:25:21
【问题描述】:

有人可以帮我找出以下指令的大小(以字节为单位的长度)吗?指令在 AI-32 机器上的 x86 上:

mov (%rax),%rdi
mov %rsp,%rdx

【问题讨论】:

  • 你自己组装这个时遇到了什么问题?
  • 我现在说得通了。我只需要知道指令的大小。
  • 在上交作业时不要忘记将答案归功于 SO。否则,你就是在为别人的工作而功劳,这就是剽窃。
  • 你应该选择D,“以上都不是”。名称以 R 开头的 CPU 寄存器仅在 x64 处理器上可用。

标签: assembly x86


【解决方案1】:

x86 不是AI-32 而是IA-32。要查找任何指令的长度,只需将其组装并检查输出(如果您不想在英特尔的手册中查找并自己组装指令)。您可以使用Online x86 / x64 Assembler and Disassembler 进行快速检查。它使用 Intel 语法,因此您需要将上述指令转换为

mov rdi, [rax]
mov rdx, rsp

输出是

0:  48 8b 38                mov    rdi,QWORD PTR [rax]
3:  48 89 e2                mov    rdx,rsp

这意味着每条指令都是 3 字节长

【讨论】:

    【解决方案2】:

    使用“step into”调试您的应用程序,然后您将看到反汇编信息,您可以通过这些信息轻松找到指令大小。

    【讨论】:

      【解决方案3】:

      我相信大小是 8 个字节。

      【讨论】:

      • 这是操作数大小。
      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多