您的位置:首页 > 运维架构 > Linux

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

2015-08-06 23:56 791 查看
初次接触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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: