linux下使用汇编语言编写hello world!程序

转载 2016年08月31日 10:40:37

1、下载nasm安装包

#wget http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/nasm-2.11.08.tar.gz

2、解压安装nasm

#tar -xzvf nasm-2.11.08.tar.gz

#cd nasm-2.11.08

#./configure

#make

#make install

3、编写hello.asm

section .data                           ;section declaration
msg     db      "Hello, world!",0xA     ;our dear string
len     equ     $ - msg                 ;length of our dear string
section .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     eax,4   ;system call number (sys_write)
       mov     ebx,1   ;first argument: file handle (stdout)
       mov     ecx,msg ;second argument: pointer to message to write
       mov     edx,len ;third argument: message length
       int     0x80    ;call kernel
;and exit
       mov     eax,1   ;system call number (sys_exit)
       xor     ebx,ebx ;first syscall argument: exit code
       int     0x80    ;call kernel


4、编译连接

#nasm -f elf64 hello.asm (linux是64位的,如果是32,请使用elf32)

#ld -s -o hello hello.o

#ls hello

hello

5、执行程序

#./hello

Hello, world!


相关文章推荐

32位汇编语言学习笔记(21)--用NASM实现Hello World小程序

前面20篇汇编学习笔记主要是学习《深入理解计算机系统》过程中所记录的笔记,接下来打算学一下另外一本书《Assembly Language step by step programming with ...

汇编语言的Hello world程序

最近一直在学习汇编语言,但是只学会做了一些最基本的程序,都没有输出,只是把结果储存在一个通用寄存器里然后结束,这样怎么行?确实,可以通过Windows自带的Debug程序来单步执行程序以观察结果,但是...

CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项

程序员的开始总是从hello world开始的,这次在linux下编写c程序,也同样是从hello world开始。 我使用的是CentOS6.4。要编写c程序,gcc是必备的,emacs也是大部分人...

LINUX C编写一个hello world!程序

当ubuntu安装好了之后,我们就要开始开始第一个linux环境下的c编程了! 首先通过一个简单的例子来建立一个使用gcc编译程序的初步概念。 启动ubuntu,进入之后打开终端(CTRL+ALT...
  • SSPUmyl
  • SSPUmyl
  • 2016年12月13日 23:13
  • 258

汇编语言编写的Hello World

Linux 下用汇编语言编写的代码具有两种不同的形式。第一种是完全的汇编代码,指的是整个程序全部用汇编语言编写。尽管是完全的汇编代码,Linux 平台下的汇编工具也吸收了 C 语言的长处,使得程序员可...

使用GTK编写的hello world小程序

#include gint count=1; void on_button_clicked(GtkWidget *button,gpointer userdata) { g_print("你...

【Android】利用adt-bundle在Linux下轻松搭建Android开发环境与Hello world

本文与《【Android】利用adt-bundle在Windows下轻松搭建Android开发环境与Hello world》(点击打开链接)是姊妹篇,只是这次操作换成了Linux 。拿Ubuntu做例...

Linux下C++的hello world实例

一直想学C++,今天无聊就按照网上的资料写了一个hello world的程序。 本文假设读者已经有了Linux的基本知识,能操作VI。 一、首先创建a.cpp,在Linux终端之下,直接vi a.cp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下使用汇编语言编写hello world!程序
举报原因:
原因补充:

(最多只允许输入30个字)