我正在学习如何在汇编中编程,我有一个澄清问题。在我的书中,它充分说明了将正确的后缀与命令结合使用的重要性。然而,在类里面老师只使用了“movl”操作数。我的老师这样做是为了简单起见还是“movb”和“movw”命令近年来已经过时了?例如,在 char 类型上使用 movl(而不是 movb)时,效率是否会降低?它还能起作用吗? 谢谢
更新:我正在谈论 x86-64 汇编
最佳答案
这个问题与哪种架构相关?
例如,在现代 x86 上,使用 mov[b/w] 加载会因部分寄存器更新而导致性能下降(防止寄存器重命名/扩展依赖链)。使用 movzx
/movsx
将零/符号扩展到全尺寸寄存器以防止这种情况发生。
关于assembly - 我可以在现代系统上的汇编中使用 movl 代替 movb 或 movw 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26455799/