18: printf("%d\n",u);
0040D473 mov ecx,dword ptr [ebp-3Ch]
0040D476 push ecx
0040D477 push offset string "%d\n" (0042201c)
0040D47C call printf (0040d700)
0040D481 add esp,8
后3句话怎么理解啊
------解决方案--------------------------------------------------------
c语言参数为从左到右压栈。
所以先把字符指针压栈, 后把格式符压栈后调用printf函数。
------解决方案--------------------------------------------------------
add esp,8 //平衡栈
------解决方案--------------------------------------------------------
就是调用这个内存空间,从这个地址读去内存的信息的意思~
------解决方案--------------------------------------------------------
printf 是个符号。
当然也有他对应的地址。
符号代表了偏移量。
call + 偏移量 实现跳转。