dz̸c³ÌÐòº¯Êýµ÷Óùý³Ì
¹Ø¼ü´Ê£º
Õ»Çø£º¾ÍÊÇÒ»¸öÄÚ´æµØÖ·¿Õ¼ä£¬Ã¿µ÷ÓÃÒ»´Îº¯Êý¾Í»áÔÚÕ»ÇøΪ´Ëº¯Êý·ÖÅäÒ»¶Î¿Õ¼ä£¨Ö÷ÒªÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿£¬
´Ë¶Î¿Õ¼äÏÂÃæ¾ÍÖ±½Ó¶¨ÒåΪº¯ÊýÕ»£©
ebp :ÓÃÓÚ´æ·Åº¯ÊýÕ»µÄÕ»¶¥µØÖ·
esp:ÓÃÓÚ´æ·Å´Ëº¯ÊýÕ»µÄÕ»µ×µØÖ·
×¢Ò⣺ջ¶¥µØÖ·´óÓÚÕ»µ×µØÖ·£¬Õ»ÊÇ´ÓÕ»¶¥ÏòÕ»µ×Ôö³¤¡£¼´ebp-->esp;
ÏÂÃæÎÒÃÇ·ÖÎöÈçÏ´úÂëÀý×Ó£¬¿´¿´ËüµÄµ÷ÓûúÖÆ
#include<stdio.h>
int fun(int c)
{
int d=c+1;
return d;
}
int main()
{
int a=1;
int b=fun(a);
return 0;
}
int a=1;
»ã±à´úÂ룺 mov dword ptr [ebp-4],1
ºÜÏÔÈ»£¬ebpÊÇÓÃ×÷µÄÁË»ùÖ·¼Ä´æÆ÷£¬×¢ÒâebpµÄÖµÊDz»»á±äµÄ£¬Ëü»á¹Ì¶¨Ö¸Ïòº¯ÊýÕ»µÄÕ»¶¥£¬ÔÚÕâÀïebp´ËʱµÄÖµÊÇ0x0013FF80
int b=fun(a);
»ã±à´úÂ룺
mov eax,dword ptr [ebp-4]
push eax
call @ILT+0(fun) (00401005)
add esp,4 &nb
Ïà¹ØÎĵµ£º
±¾ÎÄÀ´×Ô:Linux½Ì³Ì -- http://doc.linuxpk.com/53295.html
ÈçÓв»Ã÷°×Ö®´¦£¬»¶Ó²Î¼ÓÉçÇøÌÖÂÛ
1.Linux“Ï߳̔
±ÊÕßÔø¾ÔÚ¡¶»ùÓÚǶÈëʽ²Ù×÷ϵͳVxWorksµÄ¶àÈÎÎñ²¢·¢³ÌÐòÉè¼Æ¡·£¨¡¶Èí¼þ±¨¡·2006ÄêµÚ5~12ÆÚ£©ÖÐÏêϸÐðÊöÁ˽ø³ÌºÍÏ̵߳ÄÇø±ð£¬²¢Ôø¾ËµÃ÷LinuxÊÇÒ»ÖÖ“¶à½ø³Ìµ¥Ï߳̔µÄ²Ù×÷ϵͳ¡£ ......
֮ǰд¹ýÒ»¸öʵÏÖÁËijÖÖ¹¦ÄܵÄjava³ÌÐò£¬µ«ÓÉÓÚ½üÈÕ“¹¤×÷”ÐèÒª£¬ÓÖÐèÒªÔÚc/c++ÖÐÖØÐÂʹÓøù¦ÄÜ¡£ÎªÁ˽Úʡʱ¼ä£¬ÎÒ²ÉÈ¡ÁËÔÚc/c++Öе÷ÓÃjava³ÌÐòµÄ·½·¨£¬µ«Ö®Ç°Ã»ÓнӴ¥¹ýÀàËƵĶ«Î÷£¬µ½ÍøÉÏÒ»²é£¬¹ûÈ»ÓÐÀàËƵĶ«Î÷£¬ÐÄÖаµÏ²ing...¡£²éµ½µÄ×ÊÁÏÖÐÓм¸¸ö²»´íµÄÍøÒ³£º
&nbs ......
CÓïÑԵijõѧÕß³£·¸µÄÒ»¸öʧÎóÊǵ÷ÓÃϵͳ»òµÚÈý·½APIʱÍüÁËÔÚº¯ÊýÉùÃ÷Öбê×¢WINAPIµ÷Ó÷½Ê½£¬¶ø²ËÄñC++³ÌÐòԱҲÿÿÀ§»óΪʲô³ÉÔ±º¯Êý±ØÐëָʾΪCALLBACKÔÙÌí¼Óstatic¹Ø¼ü×Ö²ÅÄÜ×÷Ϊ»Øµ÷º¯Êý¡£ÔÚx86ϵͳÖУ¬´æÔÚ¶àÖÖº¯Êýµ÷ÓÃÔ¼¶¨¡£Èç¹ûµ÷ÓÃÕßÓë±»µ÷ÓÃÕß²ÉÓò»Í¬µÄµ÷ÓÃÔ¼¶¨£¬ºÜ¿ÉÄܵ¼Ö¶ÑÕ»ÆÆ»µ¡¢·Ç·¨·ÃÎʵÈÖÂÃü´íÎó¡£
ҲР......
1£¬Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å£¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£ ÀýÈ磬ÉùÃ÷ÔÚº¯ÊýÖеÄÒ»¸ö¾Ö²¿±äÁ¿int b£»ÏµÍ³×Ô¶¯ÔÚÕ»ÖÐΪb¿ª±Ù¿Õ¼ä¡£Ö»ÒªÕ»µÄÊ£Óà¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼ä£¬ÏµÍ³½«Îª³ÌÐòÌṩÄڴ棬·ñÔò½«±¨Òì³£ÌáʾջÒç³ö¡£±ÈÈ磺
char* AllocStrfromStack ......
×÷ÕߣºËᦻª e-mail:21cnbao@21cn.com
1. ÒýÑÔ
Ö¸ÕëÊÇC/C++ÓïÑÔµÄÌØÉ«£¬¶øÊý×éÃûÓëÖ¸ÕëÓÐÌ«¶àµÄÏàËÆ£¬ÉõÖÁºÜ¶àʱºò£¬Êý×éÃû¿ÉÒÔ×÷ΪָÕëʹÓá£ÓÚÊǺõ£¬ºÜ¶à³ÌÐòÉè¼ÆÕ߾ͱ»¸ãºýÍ¿ÁË¡£¶øÐí¶àµÄ´óѧÀÏʦ£¬ËûÃÇÔÚCÓïÑԵĽÌѧ¹ý³ÌÖÐÒ²´íÎóµÃ¸øѧÉú½²½â£º“Êý×éÃû¾ÍÊÇÖ¸Õ딡£ºÜÐÒÔË£¬ÎҵĴóѧÀÏ ......