一个简单的汇编例子
2011-10-18 14:30
323 查看
简单的汇编例子:
在你Linux中:
使用as sort.s -o max.o 编译
使用ld sort.o -o max 链接
使用readelf -a max.o 读取目标文件的ELF Header和Section Header Table
使用hexdump -C max.o将目标文件的字节全部打印出来。
使用objdump -d max.o将机器指令反汇编
如何将C语言编译成为汇编文件?
gcc -S temp.c
gcc -c temp.s
gcc temp.o
这里有个图可以清晰的总结:
编译汇编的两种方式:
.section .data data_items: .long 10,2,4,1,7,3,0 .section .text .globl _start _start: movl $0,%edi movl data_items(,%edi,4),%eax movl %eax,%ebx start_loop: cmpl $0,%eax //cmpl相当于比较函数 je exit_loop //如果eax==0,那么跳转到exit_loop je中‘e'的意思为’equal‘ incl %edi //edi递加1 movl data_items(,%edi,4),%eax //相当于eax=data_items+edi*4,定义eax的地址,也就是data_items数组的第edi个元素 cmpl %ebx,%eax jle start_loop //le的意思为"less than or equal“,也就是上面的比较小于或者等于的时候跳转 movl %eax,%ebx jmp start_loop //jmp直接跳转 exit_loop: movl $1,%eax int $0x80 //产生中断,由用户模式切换到内核模式
在你Linux中:
使用as sort.s -o max.o 编译
使用ld sort.o -o max 链接
使用readelf -a max.o 读取目标文件的ELF Header和Section Header Table
使用hexdump -C max.o将目标文件的字节全部打印出来。
使用objdump -d max.o将机器指令反汇编
如何将C语言编译成为汇编文件?
gcc -S temp.c
gcc -c temp.s
gcc temp.o
这里有个图可以清晰的总结:
编译汇编的两种方式:
1、as sourceCode.s -o objfile.o//编译成为目标文件 ld objfile.o -o execode //连接成可执行文件 2、gcc -o execode sourceCode.s
相关文章推荐
- 一个ARM简单反汇编例子
- 以一个最简单的例子把OO的JavaScript说明白
- 让客户端javascript修改的内容在服务端也能记忆的一个简单例子
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- 一个简单的iBatis入门例子
- 使用Eclipse+maven3插件开发一个Servlet3.0的简单例子
- 反汇编一个简单的C程序
- DirectX 9高层着色语言介绍1——引言、简单例子、汇编语言和编译对象
- heritrix的一个简单例子
- 汇编语言理解指针(指针就是汇编的间接寻址,其实就是一个简单方便的运算指令,计算完毕直接就赋值,不是从内存中去取值后赋值)
- 【转载】关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用) - 读取文件
- C++调用Lua读取配置文件的一个简单例子
- 写的委托的一个简单例子
- ExpandableListView用法的一个简单小例子
- 一个简单的NHibernate例子
- 第8章 使用Spring Web Flow--学习一个简单例子
- 试用CppUnit--一个简单的例子
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- Spring MVC:使用SimpleUrlHandlerMapping的一个简单例子
- ADMM算法求解一个简单的例子