gcc extended asm,看看手册即可了解,一个 : 后面描述输出,=a (ret) 说返回值在 eax 里面,请 gcc 代为存妥在 ret 里;再一个 : 后面跟输入,"0" (sys_write),表示在 0(输出描述中,这里是 eax) 位置放常数 sys_write,"S" .. 讲把 fd 放 esi,"c" 和 "d" 分别是 ecx、edx,把其后的变量值放在里面,int $0x80 与 linux 内核 x86 架构的 syscall abi 有关,调用时,eax 放 syscall number,参数依次放 ebx、ecx、edx、esi、edi、ebp,返回值在 eax 里取用