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://lswzjz.com/article/hhcsgs.html