所以我有以下内容。
0000024E9689000A | 68 FF 7F 00 00 | push 7FFF |
0000024E9689000F | 68 45 B2 8C DF | push FFFFFFFFDF8CB245 |
0000024E96890014 | 58 | pop rax |
0000024E96890015 | 50 | push rax |
0000024E96890016 | C3 | ret
我想要合并两个DWORDs
,首先推高一个,然后低一个并弹出rax
如果我理解正确,它应该将这两个堆栈组合成QWORD
。< / p>
这个过程是64位,我做错了什么?
答案 0 :(得分:1)
你想要这个:
mov rax, upperHalf
mov rdx, lowerHalf
shl rax, 32
or rax, rdx?
答案 1 :(得分:0)
对于常量,请像普通人一样使用10字节的mov r64, imm64
。 (与任何其他指令不同,T
的形式为64位立即数。)
[U;N]
可以很好地组装。