linux c嵌入汇编语言,Linux 下的C和Intel 汇编语言混用

test.s (转载)

--------------------------------------------------------------------

; test.s

section

.data ; 数据段声明

msg db "Hello, world!",

0xA ; 要输出的字符串

len equ $ -

msg ; 字串长度

section

.text ; 代码段声明

global test

test: ; 在屏幕上显示一个字符串

mov edx,

len ; 参数三:字符串长度

mov ecx,

msg ; 参数二:要显示的字符串

mov ebx,

1 ; 参数一:文件描述符(stdout)

mov eax,

4 ; 系统调用号(sys_write)

int

0x80 ; 调用内核功能

; 退出程序

mov ebx,

0 ; 参数一:退出代码

mov eax,

1 ; 系统调用号(sys_exit)

int

0x80 ; 调用内核功能

----------------------------------------------------------------------

test.h

--------------------------------------------------------------------

#pragma once

void test();

--------------------------------------------------------------------

main.c

--------------------------------------------------------------------

int main(int argc, char* argv[])

{

test();

return

0;

}

--------------------------------------------------------------------

编译:

1.首先要安装NASM包,以支持Intel汇编的编译

2. nasm -f elf64 test.s (64位系统, 生成test.o文件)

3. gcc -o test main.c test.o (编译成可执行程序test)

--------------------------------------------------------------------


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部