Linux下用汇编输出Hello, world
下列是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相关推荐
- Linux下ARM汇编教程
转载:http://blog.csdn.net/denlee/article/details/2501182 第一部分 Linux下ARM汇编语法 尽管在Linux下使用C或C++编写程序很方便,但汇 ...
- Linux 下的格式化输出命令:print
原文链接:http://blog.csdn.net/zgf19930504/article/details/51912765 printf 是linux 下的格式化输出命令,有点儿类似于python ...
- linux 编译汇编,linux下的汇编教程
linux下的汇编教程 第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针.设置页表.操作 ARM的协处理器等.初 ...
- stol函数在linux下使用,Linux下ATT汇编语法简介一
这显得很古怪,不过在gcc知道程序员拿这些寄存器做些什么后,这确实能够对gcc的优化操作有所帮助.表5-3中是一些可能会用到的寄存器加载代码及其具体的含义. 表5-3 常用寄存器加载代码说明 代 码 ...
- (转)Linux下的输入/输出重定向
Linux环境中支持输入输出重定向,用符号<和>来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>lee.dat 表 ...
- linux下查询汇编指令手册,Linux命令大全
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linu ...
- Linux 应用程序 嵌汇编,Linux下嵌入汇编代码调用API(using fork())
以下关于fork()的描述来自于:jason314 首先,在Linux环境下,一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新 ...
- Linux下配置汇编编译器NASM和bochs模拟器
NASM下载:http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 解压:tar zxvf nasm-2.12.02.tar.gz 进入刚解压的目录 然 ...
- idea工作台输出的日志详解_详解linux下nohup日志输出过大问题解决方案--分批切割...
概述 有的时候我们为了让某个程序在后台跑,一般都会用nohup ./xxx & 执行让程序后台运行,假设过了一段时间日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,有什么办 ...
最新文章
- JavaScript与Java函数的比较
- 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
- Jzoj4729 道路修建
- strcmp可以比较数组么_005 继承、封装、多态及数组初识
- linux已知pid定向输出,Linux启动脚本输出pid
- html 禁止缩放 ios10,完美解决ios10及以上Safari无法禁止缩放的问题
- RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
- C/Cpp / const 用法
- 注册/找回密码等功能中发送手机验证码后倒计时效果的实现(基于vue)
- RHEL4-SFTP配置
- 阿里中间件开源组件:Sentinel 0.2.0正式发布
- SeekBar的用法和自定义滑块的样式
- python实现表格_python 实现绘制整齐的表格
- Swift - 使用xib添加新界面
- 转载Java 反射机制
- pp助手苹果版_iOS 版 PP 助手下线,再见了
- vue导入excel进度条_vue中使用excel导入导出
- Java与C语言链表的不同
- 股票深度分析,深度诊断股票
- Sailfish OS
热门文章
- C#表达式,类型和变量
- 控件的呈现方法(Rendering)的内核
- 内存问题分析的利器——valgrind的memcheck
- LIVE555简介及在Windows上通过VS2013编译操作步骤
- 票据自动处理系统著名研究团队
- 【Qt】error: undefined reference to `vtable for MainWindow‘
- 【linux】shell中整数运算的加、减、乘、除
- bat curl 返回值_bat curl 发送http请求 监控网站
- 计算机基础知识整理大全_【干货整理】高中文言文基础知识大全,速度收藏!...
- 【web】从数据库读取多条数据到前台