[ASM]Linux平台内联汇编实例

初次接触Linux上编写C程序内联汇编语言,报错甚多,逐个解决后,发个Hello World,Mark一下。

【部分要求】
(1)指令必须包括在引号里。
(2)如果包含的指令超过一条,那么必须使用新行字符分割汇编语言代码的每一行。通常,还包含制表符帮助缩进汇编语言代码,使代码更容易阅读。

【环境】
CentOS 6.6 (Final)
Linux version 2.6.32-504.el6.i686
Gcc version 4.4.7 20120313

【程序】

void main()
{
    __asm__(
            "jmp forward\n\t"
            "backward:\n\t"
            "popl %esi\n\t"
            "movl $4, %eax\n\t"
            "movl $2, %ebx\n\t"
            "movl %esi, %ecx\n\t"
            "movl $12, %edx\n\t"
            "int $0x80\n\t"
            "forward:\n\t"
            "call backward\n\t"
            ".string \"Hello World\"\n\t"
           );
}

【参考】
http://bbs.csdn.net/topics/360010700

你可能感兴趣的:(编程研发)