首先......我对汇编完全是个菜鸟。我几乎什么都不懂。但是你将在下面看到的这段代码在Visual Studio中工作得很好。我只需要用一个简单的g++命令将它编译成.o文件。
g++ -o fileName.o filename.cpp
我需要将方括号{}
内的汇编代码转换为方括号()
内的汇编代码。当我试图编译下面的代码时,它崩溃了。编译器建议使用(
而不是{
unsigned char decode5a[0x0dac];
unsigned char* srcbuf = new unsigned char[4000];
m_image = new unsigned char[4000];
unsigned char* dstbuf = m_image;
__asm
{
lea eax, decode5a
push srcbuf
push dstbuf
call eax
add esp, 8
}
我尝试了类似的东西,但它也崩溃了。我想我传递变量不正确。
__asm__(
"lea eax, decode5a \n
push srcbuf \n
push dstbuf \n
call eax \n
add esp, 8 \n
");
1条答案
按热度按时间00jrzges1#
下面是在gcc扩展内联汇编中编写该函数的方法,但这仍然可能不起作用,具体取决于函数的作用。