Hoo*_*och 3 c++ assembly gcc g++ inline-assembly
如何将 Intel asm 代码放入我的 C++ 应用程序中?我正在使用 Dev-C++。
我想做这样的事情:
int temp = 0;
int usernb = 3;
pusha
mov eax, temp
inc eax
xor usernb, usernb
mov eax, usernb
popa
Run Code Online (Sandbox Code Playgroud)
这只是示例。我怎么能这样?
更新:它在 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);
}
Run Code Online (Sandbox Code Playgroud)
之后,您需要使用以下内容进行编译:
gcc -m32 -std=c99 -Wall -Wextra -masm=intel -o casm casmt.c && ./casm && echo $?
output:
0
Run Code Online (Sandbox Code Playgroud)
您需要使用 -masm=intel 标志进行编译,因为您需要英特尔程序集语法:)
| 归档时间: |
|
| 查看次数: |
15865 次 |
| 最近记录: |