下列是Intel汇编语法实现的 Hello, world!程序。

;; hello.asm
;; nasm -f elf hello.asm; will output hello.o
;; ld -s -o hello hello.o;; section, same to segment
segment .data      ; 数据段声明, 下列代码将放在数据段中msg db "Hello, world!", 0xA   ; 要输出的字符串len equ $ - msg         ; 字串长度section .text      ; 代码段声明,下列代码将放入代码段中
global _start      ; 指定入口函数,global修饰是为了让外部可以引用_start
_start:         ; 在屏幕上显示一个字符串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     ; 调用内核功能

在Linux下可以用nasm编译成ELF格式的目标文件,然后链接成可执行文件。

nasm -f elf hello.asm  #将生成hello.o
ld -s -o hello hello.o  #链接生成可执行文件hello.

执行./hello就能看到"Hello, world!"的输出了。

Linux下用汇编输出Hello, world相关推荐

  1. Linux下ARM汇编教程

    转载:http://blog.csdn.net/denlee/article/details/2501182 第一部分 Linux下ARM汇编语法 尽管在Linux下使用C或C++编写程序很方便,但汇 ...

  2. Linux 下的格式化输出命令:print

    原文链接:http://blog.csdn.net/zgf19930504/article/details/51912765 printf 是linux 下的格式化输出命令,有点儿类似于python ...

  3. linux 编译汇编,linux下的汇编教程

    linux下的汇编教程 第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针.设置页表.操作 ARM的协处理器等.初 ...

  4. stol函数在linux下使用,Linux下ATT汇编语法简介一

    这显得很古怪,不过在gcc知道程序员拿这些寄存器做些什么后,这确实能够对gcc的优化操作有所帮助.表5-3中是一些可能会用到的寄存器加载代码及其具体的含义. 表5-3 常用寄存器加载代码说明 代 码 ...

  5. (转)Linux下的输入/输出重定向

    Linux环境中支持输入输出重定向,用符号<和>来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>lee.dat 表 ...

  6. linux下查询汇编指令手册,Linux命令大全

    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linu ...

  7. Linux 应用程序 嵌汇编,Linux下嵌入汇编代码调用API(using fork())

    以下关于fork()的描述来自于:jason314 首先,在Linux环境下,一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新 ...

  8. Linux下配置汇编编译器NASM和bochs模拟器

    NASM下载:http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 解压:tar zxvf nasm-2.12.02.tar.gz 进入刚解压的目录 然 ...

  9. idea工作台输出的日志详解_详解linux下nohup日志输出过大问题解决方案--分批切割...

    概述 有的时候我们为了让某个程序在后台跑,一般都会用nohup ./xxx & 执行让程序后台运行,假设过了一段时间日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,有什么办 ...

最新文章

  1. JavaScript与Java函数的比较
  2. 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
  3. Jzoj4729 道路修建
  4. strcmp可以比较数组么_005 继承、封装、多态及数组初识
  5. linux已知pid定向输出,Linux启动脚本输出pid
  6. html 禁止缩放 ios10,完美解决ios10及以上Safari无法禁止缩放的问题
  7. RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
  8. C/Cpp / const 用法
  9. 注册/找回密码等功能中发送手机验证码后倒计时效果的实现(基于vue)
  10. RHEL4-SFTP配置
  11. 阿里中间件开源组件:Sentinel 0.2.0正式发布
  12. SeekBar的用法和自定义滑块的样式
  13. python实现表格_python 实现绘制整齐的表格
  14. Swift - 使用xib添加新界面
  15. 转载Java 反射机制
  16. pp助手苹果版_iOS 版 PP 助手下线,再见了
  17. vue导入excel进度条_vue中使用excel导入导出
  18. Java与C语言链表的不同
  19. 股票深度分析,深度诊断股票
  20. Sailfish OS

热门文章

  1. C#表达式,类型和变量
  2. 控件的呈现方法(Rendering)的内核
  3. 内存问题分析的利器——valgrind的memcheck
  4. LIVE555简介及在Windows上通过VS2013编译操作步骤
  5. 票据自动处理系统著名研究团队
  6. 【Qt】error: undefined reference to `vtable for MainWindow‘
  7. 【linux】shell中整数运算的加、减、乘、除
  8. bat curl 返回值_bat curl 发送http请求 监控网站
  9. 计算机基础知识整理大全_【干货整理】高中文言文基础知识大全,速度收藏!...
  10. 【web】从数据库读取多条数据到前台