内联汇编中使用call出错

环境:win10,x64,vs2017,编译器用的intel parallel studio XE2019
问题:在dll中执行GetModuleHandle(modName),函数可以正常执行,写内联汇编
__asm{
lea rcx,modName
call GetModuleHandle
}

就会执行出错,反汇编后发现c++写的代码,call GetModuleHandle时是正确的地址,而内联的时候是错的,指向当前模块的某个地址,后来试验在主进程中用call也是一样的错误,百度了很久也没找到是什么原因,求问内联汇编中应该怎么用call

c++
lusnlon
lusnlon 原因找到了,x64汇编 不管是call 还是jmp,如果后面是64位地址的话,必须先mov进寄存器,然后call 或jmp寄存器,我学的32位汇编,真是被这个地方坑死了
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问