【发布时间】:2016-12-31 03:41:16
【问题描述】:
例如,这两条指令是否可以在同一个周期开始执行,或者它们是否会相互干扰?
MOV %RAX, (ADDR) # AT&T syntax: store rax
POP %RAX
【问题讨论】:
-
如果是
movl那么不应该是eax吗? -
@LưuVĩnhPhúc:很好,这完全是伪造的代码。我假设它是 16 位 Intel 语法(dst first,WAW 危险),因为几乎没有人将 AT&T 语法用于 16 位代码。 POP AX (
popw %ax) 在 64 位模式和 32 位模式下有效,但 POPL 不是(并且这被标记为 x86-64),但我仍然认为将代码转换为有效会更清楚64 位 AT&T 语法。 -
这是 Go 汇编程序的语法,我认为它来自 Plan9。不是最好的例子,感谢您更改它。你的重写是正确的。
标签: assembly x86 x86-64 cpu-architecture micro-optimization