【发布时间】:2017-08-30 22:39:12
【问题描述】:
我需要更改这段代码中的两个数组元素。就像我会在 C 中做 str[0] = a 和 str[1] = b 一样。它是 C 代码中的内联汇编程序,Linux。
char str[] = "9999\n";
int a = 1;
inb b = 1;
asm volatile (
//replace 1st element of str with a here
//replace 2st element of str with b here
: "=r" (str)
: "r" (a), "r" (b), "r" (str)
: );
【问题讨论】:
-
a 与 str 的元素不同。你想发生什么?将
(char)1放入字符串中还是将'1'放入字符串中? -
另外,您的实际问题是什么?你还没有问过问题。
-
我已经编辑了问题。
-
如果有人把那个模板给了你,我会很好奇他们为什么遗漏了一些重要的东西,比如
memoryclobber(在这种情况下是必要的) -
不,我编写了那个代码。我是组装新手。所以我必须将“内存”添加到clober列表中?