linux下反汇编命令 汇编 linux

int i = 0; i = (++i)+(++i); printf("i=%d\n",i); 请问一下结果 i 为什么是4,而不是3,求解释??

linux下的反汇编:

创新互联建站主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务固始,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

15 movl $0, -4(%ebp) i = 0

16 addl $1, -4(%ebp) ++i

17 addl $1, -4(%ebp) ++i

18 movl -4(%ebp), %eax \

19 addl %eax, %eax | i = i + i

20 movl %eax, -4(%ebp) /

-4(%ebp)表示的就是i。执行的结果就如同其他人说的那样,最后i+i的时候i已经是2了。

当初的++操作只是为了节省源代码的空间,实际项目中最好不要用。

linux中 gcc 下ld 链接成什么格式的目标文件,有生成的哪些文件可以反汇编,反汇编的工具有哪些?

elf可执行文件

生成的目标文件(也即.o文件)和elf文件都可以反汇编

反汇编工具就是objdump命令,加个-S的选项就可以了。例如:

objdump -S hello hello.dump

LINUX下有一般用什么反汇编工具

答:linux上很容易反汇编的埃用nasm就可以的。 1、首先读取mbr sudo dd if=/dev/sda of=mbr.bin count=1 dd是linux的命令,需要root权限的,if是输入方法 ,在linux上所有的设备都是文件 ,mbr在第一块硬盘上,所以if=dev/sda。of=mbr.bin


文章名称:linux下反汇编命令 汇编 linux
分享地址:http://myzitong.com/article/hhcsgs.html