定义用于内联汇编JMP指令的变量/标签

问题描述 投票:0回答:1

我具有具有以下定义的内联汇编函数:

void __declspec(naked) func()
{
    __asm 
    {
        //...
        JMP [address]
        //...
    }
}

此地址变量仅在运行时才知道,主要我有:

int main()
{
    //...
    DWORD address = getAddress();
    func();
    //...
}

那样,代码将不会出现以下错误消息:

错误C2094:未定义标签'地址'

  1. 我无法将地址作为参数传递给func()函数,该如何解决此问题?

  2. 我可以在名称空间中定义地址吗?好的做法吗?可以使用名称空间来扩展变量的范围(在不同的函数/作用域中使用此变量)吗?

c++ assembly namespaces label
1个回答
0
投票

您在C ++中,当您在堆栈中保留具有类实例的块时,必须调用析构函数,而JMP则不会这样。

© www.soinside.com 2019 - 2024. All rights reserved.