NASM 在linux 环境下 的hello world 程序
来源:互联网 发布:网络渲染软件有哪些 编辑:程序博客网 时间:2024/05/17 23:41
section .datamsgdb "Hello , world", 13, 10lenequ$-msgsection .textglobal _start_start:moveax, 4mov ebx, 1mov ecx, msgmov edx, lenint 0x80moveax, 1movebx, 0int 0x80
具体思路:
使用通过0x80软中断来使用Linux系统调用达到输出字符串的目的。
调用的功能可对比 write函数 write(int fd,const void *buf,size_t count)
进行调用时,eax中存放功能号,此处为4,
ebx中存放第一个参数,此处为 文件描述符
ecx中存放第二个参数,此处为 输出字符串的指针,即msg
edx中存放第三个参数,此处为 字符串的长度
之后 调用中断 0x80,输出字符串
输出完成之后,再次以相同的方法使用0x80中断,此次的功能号为1,代表退出
最后退出程序
编译及运行(此处假设文件名为hello.s):
nasm -f elf hello.s (如果为64位系统,则应为nasm -f elf64 hello.s)
ld -o hello hello.o
0 0
- NASM 在linux 环境下 的hello world 程序
- linux NASM Hello, world!
- NASM写的DOS程序:Hello World!
- 在Redhat9 Linux下安装java开发环境,并编写“Hello world”程序
- 在不同的环境中编译hello world程序
- Linux 下的“Hello world!”
- Linux下的“Hello world!”
- Linux下的第一个程序Hello World
- Linux 下编译hello world 的C 语言程序
- linux(ubuntu)下的第一个程序 hello world
- Linux 下编译hello world 的C 语言程序
- NASM : hello world
- 在Linux下打印出Hello World!
- 在linux下输出hello world
- 系出名门Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序
- 系出名门Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序
- 系出名门Android(1) - 在Windows下搭建Android开发环境,以及Hello World程序
- 系出名门Android(1) - 在 Windows 下搭建 Android 开发环境,以及 Hello World 程序
- android4.4以及以上的系统,无法获取相册图片解决方法。
- JAVA annotation入门
- Android Fragments的概述
- Android NDK JNI
- 二叉树创建,遍历,求深度详解(递归方法)
- NASM 在linux 环境下 的hello world 程序
- ubuntu自带VI编辑器不好用的解决办法
- 数列有序
- Android开发【记事本App】项目开发流程——1
- 通信算法之十二:Turbo编码与译码仿真链路
- 《github一天一道算法题》:分治法求数组最大连续子序列和
- 第4章 字符串和多维数组
- Java SE学习(一)
- UISegmentedControl的各种属性与方法的使用,详细!!!