C语言拾遗(六):分析C语言的函数调用过程

1 add: 2 pushl %ebp/压EBP,这里就是保存调用者main的 3 movl %esp, %ebp/同main 4movl 12(%ebp), %eax/取x放eax 5movl 8(%ebp), %edx/取y放edx 6 addl %edx, %eax/相加放eax 7 popl %ebp/弹出ebp pushl %ebp/压旧的EBP11 movl %esp, %ebp/ESP的值赋给EBP,这样main函数的栈帧开始的地方就放在EBP了12subl $24, %esp/ESP减去24,香港虚拟主机,由于我们的栈是向地址方向增长,所以这样相当与分配了24字节的栈空间13movl $546, -12(%ebp)/arg1 0x222放在EBP后12字节处14movl $1638, -8(%ebp)/arg2 0x666放在EBP后8字节处15movl -8(%ebp), %eax/把arg2放eax16movl %eax, 4(%esp)/把eax放esp+4,arg2->esp+417movl -12(%ebp), %eax/arg1放eax18 movl %eax, (%esp)/eax放esp,香港服务器,arg1->esp指向处movl %eax, -4(%ebp)/eax给ebp-421movl -4(%ebp), %eax/ebp-4再给eax,好废话啊,网站空间,其实就是结果保存在eax了,gcc没加优化-O的结果

人生的成功不过是在紧要处多一份坚持,

C语言拾遗(六):分析C语言的函数调用过程

相关文章:

你感兴趣的文章:

标签云: