如何将英特尔 asm 代码放入我的 C++ 应用程序中? 我正在使用 Dev-C++。
我想这样做:
int temp = 0;
int usernb = 3;
pusha
mov eax, temp
inc eax
xor usernb, usernb
mov eax, usernb
popa
这只是一个例子。 我怎么能那样做?
更新: 它在 Visual Studio 中的外观如何?
最佳答案
您可以在此处找到完整的指南 http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
#include <stdlib.h>
int main()
{
int temp = 0;
int usernb = 3;
__asm__ volatile (
"pusha \n"
"mov eax, %0 \n"
"inc eax \n"
"mov ecx, %1 \n"
"xor ecx, %1 \n"
"mov %1, ecx \n"
"mov eax, %1 \n"
"popa \n"
: // no output
: "m" (temp), "m" (usernb) ); // input
exit(0);
}
之后你需要用类似的东西编译:
gcc -m32 -std=c99 -Wall -Wextra -masm=intel -o casm casmt.c && ./casm && echo $?
output:
0
您需要使用 -masm=intel 标志进行编译,因为您需要使用 intel 汇编语法:)
关于c++ - C++代码中的汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038312/