x64寄存器是否可以互换,因为任何与它们组合使用的指令都可以与其他指令一起使用?除了名称之外,是否有性能差异或任何其他因素使它们彼此不同?
有一些限制,编码也有一些差异。
rsp(和esp等)不能用作索引寄存器。有许多指令在特定寄存器中接受参数或返回结果 - 例如,变量移位指令仅在cl.
算术指令 ( 和test) 具有rax加 32 位立即数的短编码:
8: 48 05 ff ff 00 00 add $0xffff,%rax
e: 48 81 c3 ff ff 00 00 add $0xffff,%rbx
Run Code Online (Sandbox Code Playgroud)
我确信还有一些其他的点点滴滴我现在想不起来:请参阅架构手册以获取血淋淋的细节。
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |