ASM linux helloworld

来源:互联网 发布:淘宝买iphone7 店铺 编辑:程序博客网 时间:2024/05/19 19:43

Sourcecode:(NASM hello.asm)

section .data;section declarationmsg     db      "Hello, world!",0xa;our dear stringlen     equ     $ - msg                 ;length of our dear stringsection .text;section declaration;we must export the entry point to the ELF linker or    global _start;loader. They conventionally recognize _start as their;entry point. Use ld -e foo to override the default._start:;write our string to stdout        mov     edx,len ;third argument: message length        mov     ecx,msg ;second argument: pointer to message to write        mov     ebx,1   ;first argument: file handle (stdout)        mov     eax,4   ;system call number (sys_write)        int     0x80;call kernel;and exitmovebx,0;first syscall argument: exit code        mov     eax,1   ;system call number (sys_exit)        int     0x80;call kernel

Ubuntu:编译执行:

 nasm -f elf hello.asm

 ld --oformat elf32-i386 -m elf_i386 -o hello hello.o

./hello

结果:Hello, world!



原创粉丝点击