Gcc 汇编代码'movl%1,%%ebx'是什么意思?

Gcc 汇编代码'movl%1,%%ebx'是什么意思?,gcc,assembly,linux-kernel,inline-assembly,Gcc,Assembly,Linux Kernel,Inline Assembly,我试图理解一些汇编代码: movl $244, %eax movl %1, %%ebx 第一个表示将数字244放入寄存器eax,但第二个表示什么?提前谢谢你的帮助 P.S see the difference %1 and $244 and %eax and %%ebx movl%1、%%ebx movl将第一个参数移动到第二个参数。第一个参数是变量%1。第二个参数是寄存器%%ebx。编译器会将双百分号更改为单百分号,这样您就可以很好地编写: movl%1,%ebxgcc内联程序集使用%1指

我试图理解一些汇编代码:

movl $244, %eax
movl %1, %%ebx
第一个表示将数字244放入寄存器eax,但第二个表示什么?提前谢谢你的帮助

P.S see the difference %1 and $244 and %eax and %%ebx

movl%1、%%ebx

movl
将第一个参数移动到第二个参数。第一个参数是变量
%1
。第二个参数是寄存器
%%ebx
。编译器会将双百分号更改为单百分号,这样您就可以很好地编写:


movl%1,%ebx

gcc内联程序集使用%1指定参数。 您将在此处找到有关内联程序集的一些提示:


我之所以重新标记,是因为您忘了告诉我此汇编代码是在内联汇编上下文中使用的。请注意,最新的gcc确实详细介绍了所有这些。嗯,实际上我不相信您可以删除额外的代码%(您会得到“%-字母后缺少操作数”)。如果您使用的是扩展asm(该OP由%1指示),则必须使用
%%ebx
。%eax不受影响的原因是OP从其他地方复制了它(即不是扩展asm)。