gpt4 book ai didi

c - Gcc 内联 ASM 输入变量

转载 作者:行者123 更新时间:2023-12-02 01:57:10 24 4
gpt4 key购买 nike

我有这段代码:

void  geninterrupt (int x) {
__asm__(
"movb x, %al \n"
"movb %al, genint+1 \n"
"jmp genint \n"
"genint: \n"
"int $0 \n"
);
}

如何让 movb 使用 geninterrupt() 的参数?

最佳答案

您需要正确使用约束字段:

void  geninterrupt (int x) {
__asm__(" movb %[x], %%al \n"
" movb %%al, genint+1 \n"
" jmp genint \n"
"genint: \n"
" int $0 \n"
: /* no outputs */
: [x] "m" (x) /* use x as input */
: "al" /* clobbers %al */
);
}

Here's a good how-to about GCC inline assembly和一个 link to the relevant GCC documentation .

编辑:因为您的 GCC 似乎无法处理带标签的操作数

关于c - Gcc 内联 ASM 输入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19368909/

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