gpt4 book ai didi

c++ - GCC:错误:表达式后出现垃圾 `:0x+57f120'

转载 作者:行者123 更新时间:2023-11-30 02:44:51 26 4
gpt4 key购买 nike

继我之前的问题 here ,当编译器尝试编译以下代码时,我现在有一个“表达式后的错误垃圾”:

u32 jmpAdd = BW::BWFXN_SpendRepairReturnAddress;
//BW::BWFXN_SpendRepairReturnAddress has the following value: 0x0046700D
__asm__ __volatile__
(
"movl ds:0x+57f120(, %eax, 4), %ecx\n\t"
"jmp %0":"=m"(jmpAdd)
);

GCC 给我以下错误:

Error: junk ':0x+57f120' after expression
Error: invalid instruction suffix for 'jmp'

请问我该如何纠正这些错误?

编辑:原始代码如下(我使用 ta2as v0.8.2 对其进行了转换):

__asm
{
mov ecx, dword ptr ds:[eax*4+0x57f120]
jmp BW::BWFXN_SpendRepairReturnAddress
}

最佳答案

将其更改为以下内容,它应该可以编译:

__asm__ __volatile__
(
"movl %%ds:0x57f120(, %%eax, 4), %%ecx\n\t"
"jmp *%0" : : "m"(jmpAdd)
);

不幸的是,在查看了 source 之后您可能正在尝试转换它实际上不会起作用。 GCC 不支持 x86 目标上的函数。

关于c++ - GCC:错误:表达式后出现垃圾 `:0x+57f120',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25060946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com