就像是
char p = 'P';int main(){__asm__ __volatile__ ( " movl $1, %%edx nt" " leal p , %%ecx nt" " movl $0, %%ebx nt" " movl $4, %%eax nt" " int $0x80 nt" ::: "%eax", "%ebx", "%ecx", "%edx" );}添加 :请注意,我曾经
lea将char的有效地址加载到
ecx寄存器中;对于
ebx我尝试$ 0和$ 1的价值,它似乎仍然可以工作…
避免使用外部字符
int main(){__asm__ __volatile__ ( " movl $1, %%edx nt" " subl $4, %%esp nt" " movl $80, (%%esp)nt" " movl %%esp, %%ecx nt" " movl $1, %%ebx nt" " movl $4, %%eax nt" " int $0x80 nt" " addl $4, %%espnt" ::: "%eax", "%ebx", "%ecx", "%edx" );}注意:它之所以有效是因为Intel处理器的字节序!:D



