gpt4 book ai didi

无法使用字符串变量中的指令执行内联汇编程序

转载 作者:行者123 更新时间:2023-11-30 16:38:48 28 4
gpt4 key购买 nike

我正在尝试执行内联汇编,并给出一个变量作为输入

void main(void)
{
char a[20] = "mov edx, 88";

asm("%[a]" : : [a]"r"(a));
}

但是:

gcc a.c -masm=intel
Error: no such instruction: `eax'

我怎样才能做到这一点?

最佳答案

指令必须是字符串文字的形式(实际写入的字符串,字符数组的名称顺便说一下是一个指针)。除此之外,您已经了解了总体思路:)

#include <stdio.h>

int main(int argc, char ** argv){
char a[20] = "nice try:)";
char * dst;

asm("mov %[dst], %[src]\n\t"
: [dst]"=r" (dst) : [src]"r"(a));

printf("%s\n", dst);
return 0;
}

和一个有用的链接: https://dmalcolm.fedorapeople.org/gcc/2015-08-31/rst-experiment/how-to-use-inline-assembly-language-in-c-code.html

关于无法使用字符串变量中的指令执行内联汇编程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356628/

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