linux下使用汇编语言编写hello world!程序
2015-04-25 17:37
369 查看
最近公司需要完成安全方面的测试,随之带来需要更深入地学习攻击方法和漏洞分析的技术,总感觉有点像黑客:),不过不能只知道一些安全测试工具的方法和工具的使用,更需要基础功夫,首先从大学学过的汇编语言(呵呵,大学学过的课程,长时间没有使用大部分还给老师了)开始。
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
4、编译连接
#nasm -f elf64 hello.asm (linux是64位的,如果是32,请使用elf32)
#ld -s -o hello hello.o
#ls hello
hello
5、执行程序
#./hello
Hello, world!
终于写一个最简单的Hello World,回想起一些常用的指令和寄存器的作用,只能在后来安全测试和C语言转汇编的时候,加强一下汇编的知识,知识到用时方恨少,还是多准备一些知识了:)加油~~~~
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!
终于写一个最简单的Hello World,回想起一些常用的指令和寄存器的作用,只能在后来安全测试和C语言转汇编的时候,加强一下汇编的知识,知识到用时方恨少,还是多准备一些知识了:)加油~~~~
相关文章推荐
- linux下使用汇编语言编写hello world!程序
- 8086汇编语言自学经验分享 打开并使用edit编写一个汇编程序
- 【Linux】使用vim编写一个程序,gcc查看预处理、编译、汇编、链接过程
- 1.2.在linux环境实践,使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。并熟悉相关指令。
- Linux操作系统的简单指令及如何使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。
- 使用汇编语言编写程序,设计一个用8051单片机控制的循环彩灯控制系统
- 内核态下基于动态感染技术的应用程序执行保护(二 使用汇编语言编写内核态程序)
- 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取
- 使用 C++11 编写 Linux 多线程程序
- 使用 C++11 编写 Linux 多线程程序
- 用汇编语言编写查表程序
- 用51单片机汇编语言,编写“键控加减一”的程序
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 用80x86汇编语言,编写一个判断闰年的程序
- 单片机 AT89C51 汇编语言编写报警信号程序
- 用汇编语言编写程序打印ASCII表
- CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项
- 用vs2008编写和调试linux程序 ----VisualGDB 使用教程
- 黑马程序员—Java语言基础(人机交互方式、Java语言介绍、环境变量配置、Hello World程序编写)
- Linux 下编译hello world 的C 语言程序