我知道在x86中我们可以使用括号中的32位地址作为地址。例如:
lea eax, [0xCAFEBABE]
但是在 64 位模式下我应该做什么呢?
下一个代码将无法编译,因为(据我所知)64 位常量只是禁止用于地址。
lea rax, [0xCAFEBABEDEADBEEF]
如何使用这个括号访问一些具有已知常量地址的常量?
指令lea 不允许 ModR/M 形式的 64 位位移,请使用mov代替:
|00000000:48B8EFBEADDEBEBAFECA | MOV RAX, 0xCAFEBABEDEADBEEF ; Load 64bit GPR with 64bit immediate value.
|0000000A:48A1EFBEADDEBEBAFECA | MOV RAX,[0xCAFEBABEDEADBEEF] ; Load RAX from a QWORD stored at 64bit offset.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71 次 |
最近记录: |