windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ4ÕÂ
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡loop¡¡¡¡loc1
loc1ÔÚ±ðµÄµØ·½¾ÍÔÙÒ²Óò»µ½ÁË£¬¶ÔÓÚÕâÖÖÇé¿ö£¬¸ß°æ±¾µÄMASMÓÃ@@±êºÅÈ¥´úÌæËü£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡cx£»1234h
¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmp¡¡¡¡¡¡flag£»1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡jz¡¡¡¡¡¡¡¡@F
¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡cx£»1000h
@@£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡loop¡¡¡¡@B
µ±ÓÃ@@×ö±êºÅʱ£¬¿ÉÒÔÓÃ@FºÍ@BÀ´ÒýÓÃËü£¬@F±íʾ±¾ÌõÖ¸ÁîºóµÄµÚÒ»¸ö@@±êºÅ£¬@B±íʾ±¾ÌõÖ¸ÁîÇ°µÄµÚÒ»¸ö@@±êºÅ£¬³ÌÐòÖпÉÒÔÓжà¸ö@@±êºÅ£¬@BºÍ@FֻѰÕÒÆ¥Åä×î½üµÄÒ»¸ö¡£
¡¡²»ÒªÔÚ¼ä¸ôÌ«Ô¶µÄ´úÂëÖÐʹÓÃ@@±êºÅ£¬ÒòΪÔÚÒÔºóµÄÐÞ¸ÄÖÐ@@ºÍ@B£¬@FÖмä¿ÉÄܻᱻÎÞÒâÖвåÈëÒ»¸öеÄ@@£¬ÕâÑùÒ»À´£¬@B»ò@F¾Í»áÒýÓõ½´íÎóµÄµØ·½È¥£¬Ô´³ÌÐòÖÐ@@±êºÅºÍÌøתָÁîÖ®¼äµÄ¾àÀë×îºÃÏÞÖÆÔÚ±à¼Æ÷Äܹ»ÏÔʾµÄͬһÆÁÄ»µÄ·¶Î§ÄÚ¡£
3¡£3¡£2¡¡¡¡È«¾Ö±äÁ¿
1¡£¡¡È«¾Ö±äÁ¿µÄ¶¨Òå
È«¾Ö±äÁ¿µÄ×÷ÓÃÓòÊÇÕû¸ö³ÌÐò£¬Win32»ã±àµÄÈ«¾Ö±äÁ¿¶¨ÒåÔÚ¡¡¡£data»ò¡¡¡£data£¿¶ÎÄÚ£¬¿ÉÒÔͬʱ¶¨Òå±äÁ¿µÄÀàÐͺͳ¤¶È£¬¸ñʽÊÇ£º
±äÁ¿Ãû¡¡¡¡¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡³õʼֵ1£»³õʼֵ2£¬¡¡
±äÁ¿Ãû¡¡¡¡¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡Öظ´ÊýÁ¿¡¡dup¡¡£¨³õʼֵ1£»³õʼֵ2£¬¡¡£©
MASMÖпÉÒÔ¶¨ÒåµÄ±äÁ¿ÀàÐÍÏ൱¶à£¬¾ßÌåÈç±í3¡£2Ëùʾ¡£
±í3¡£2¡¡¡¡±äÁ¿µÄÀàÐÍ
Ãû¡¡¡¡¡¡¡¡³Æ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡±íʾ·½Ê½¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ëõ¡¡¡¡¡¡¡¡Ð´¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³¤¶È£¨×Ö½Ú£©
¡¡
×Ö½Ú
¡¡byte
¡¡db
¡¡1
¡¡
×Ö
¡¡word
¡¡dw
¡¡2
¡¡
Ë«×Ö£¨doubleword£©
¡¡dword
¡¡dd
¡¡4
¡¡
Èý×Ö£¨farword£©
¡¡fword
¡¡df
¡¡6
¡¡
ËÄ×Ö£¨quadword£©
¡¡qword
¡¡dq
¡¡8
¡¡
Ê®×Ö½ÚBCDÂ루tenbyte£©
¡¡tbyte
¡¡dt
¡¡10
¡¡
ÓзûºÅ×Ö½Ú£¨signbyte£©
¡¡sbyte
¡¡¡¡
¡¡1
¡¡
ÓзûºÅ×Ö£¨signword£©
¡¡sword
¡¡¡¡
¡¡2
¡¡
ÓзûºÅË«×Ö£¨signdword£©
¡¡sdword
¡¡¡¡
¡¡4
¡¡
µ¥¾«¶È¸¡µãÊý
¡¡real4
¡¡¡¡
¡¡4
¡¡
Ë«¾«¶È¸¡µãÊý
¡¡real8
¡¡¡¡
¡¡8
¡¡
10×Ö½Ú¸¡µãÊý
¡¡real10
¡¡¡¡
¡¡10
¡¡
ËùÓÐʹÓõ½±äÁ¿ÀàÐ͵ÄÇé¿öÖУ¬Ö»Óж¨ÒåÈ«¾Ö±äÁ¿µÄʱºòÀàÐͲſÉÒÔÓÃËõд£¬ÏÖÔÚÏÈÀ´¿´È«¾Ö±äÁ¿¶¨ÒåµÄ¼¸¸öÀý×Ó£º
¡£data
wHour¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dw¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý1
wMinute¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dw¡¡¡¡¡¡¡¡¡¡¡¡10¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý2
_hWnd¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dd¡¡¡¡¡¡¡¡¡¡¡¡£¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý3
word_Buffer¡¡¡¡¡¡¡¡¡¡dw¡¡¡¡¡¡¡¡¡¡¡¡100¡¡dup¡¡£¨1£»2£©¡¡¡¡¡¡¡¡£»Àý4
szBuffer¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡byte¡¡¡¡¡¡¡¡1024¡¡dup¡¡£¨£¿£©¡¡¡¡¡¡¡¡¡¡£»Àý5
szText¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡'Hello£»world£¡'¡¡¡¡¡¡£»Àý6
¡ñ¡¡¡¡¡¡Àý1¶¨ÒåÁËÒ»¸öδ³õʼ»¯µÄwordÀàÐͱäÁ¿£¬Ãû³ÆΪwHour¡£
¡ñ¡¡¡¡¡¡Àý2¶¨ÒåÁËÒ»¸öÃûΪwMinuteµÄwordÀàÐͱäÁ¿¡£
¡ñ¡¡¡¡¡¡Àý3¶¨ÒåÁËÒ»¸öË«×ÖÀàÐ͵ıäÁ¿_hWnd¡£
¡ñ¡¡¡¡¡¡Àý4¶¨ÒåÁËÒ»×é×Ö£¬ÒÔ0001£¬0002£¬0001£¬0002£¬¡µÄ˳ÐòÔÚÄÚ´æÖÐÖظ´100±é£¬Ò»¹²ÊÇ200¸ö×Ö¡£
¡ñ¡¡¡¡¡¡Àý5¶¨ÒåÁËÒ»¸ö1¡¡024×ֽڵĻº³åÇø¡£
¡ñ¡¡¡¡¡¡Àý6¶¨ÒåÁËÒ»¸ö×Ö·û´®£¬×ܹ²Õ¼ÓÃÁË12×Ö½Ú¡£Á½Í·µÄµ¥ÒýºÅÊǶ¨½çµÄ·ûºÅ£¬²¢²»ÊôÓÚ×Ö·û´®ÖÐÕæÕýµÄÄÚÈÝ¡£
ÔÚbyteÀàÐͱäÁ¿µÄ¶¨ÒåÖУ¬¿ÉÒÔÓÃÒýºÅ¶¨Òå×Ö·û´®ºÍÊýÖµ¶¨ÒåµÄ·½·¨»ìÓ㬼ÙÉèÒª¶¨ÒåÁ½¸ö×Ö·û´®¡°Hello£»World£¡¡¡¡±ºÍ¡°Hello¡¡again¡±£¬Ã¿¸ö×Ö·û´®ºóÃæ¸ú»Ø³µºÍ»»Ðзû£¬×îºóÒÔÒ»¸ö0×Ö·û½á⣬¿ÉÒÔ¶¨ÒåÈçÏ£º
szText¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡db¡¡¡¡¡¡¡¡¡¡¡¡'Hello£»world£¡'£»0dh£»0ah£»'Hello¡¡again'£»0dh£»0ah£»0
2¡£¡¡È«¾Ö±äÁ¿µÄ³õʼ»¯Öµ
È«¾Ö±äÁ¿ÔÚ¶¨ÒåÖмȿÉÒÔÖ¸¶¨³õÖµ£¬Ò²¿ÉÒÔÖ»ÓÃÎʺÅÔ¤Áô¿Õ¼ä£¬ÔÚ¡¡¡£data£¿¶ÎÖУ¬Ö»ÄÜÓÃÎʺÅÔ¤Áô¿Õ¼ä£¬ÒòΪ¡¡¡£data£¿²»ÄÜÖ¸¶¨³õʼֵ£¬ÕâÀï¾ÍÓÐÒ»¸öÎÊÌ⣺¼ÈÈ»¿ÉÒÔÓÃÎʺÅÔ¤Áô¿Õ¼ä£¬ÄÇôÔÚʵ¼ÊÔËÐеÄʱºò£¬Õâ¸öδ³õʼ»¯µÄÖµÊÇËæ»úµÄ»¹ÊÇÈ·¶¨µÄÄØ£¿ÔÚÈ«¾Ö±äÁ¿ÖУ¬Õâ¸öÖµ¾ÍÊÇ0£¬ËùÒÔÓÃÎʺÅÖ¸¶¨µÄÈ«¾Ö±äÁ¿Èç¹ûÒªÒÔ0Ϊ³õʼֵµÄ»°£¬ÔÚ³ÌÐòÖпÉÒÔ²»±ØΪËü¸³Öµ¡£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ3Õ¡¡Ê¹ÓÃMASM
3¡£3¡¡±êºÅ¡¢±äÁ¿ºÍÊý¾Ý½á¹¹£¨2£©
¡¡¡¡¡¡¡¡
3¡£3¡£3¡¡¡¡¾Ö²¿±äÁ¿
¾Ö²¿±äÁ¿Õâ¸öÃû³Æ×îÔçÔ´Óڸ߼¶ÓïÑÔ£¬Ö÷ÒªÊÇΪÁ˶¨ÒåһЩ½öÔÚµ¥¸öº¯ÊýÀïÃæÓÐÓõıäÁ¿¶øÌá³öµÄ£¬Ê¹Óþֲ¿±äÁ¿ÄÜ´øÀ´Ò»Ð©¶îÍâµÄºÃ´¦£¬Ëüʹ³ÌÐòµÄÄ£¿é»¯·â×°±äµÃ¿ÉÄÜ£¬ÊÔÏëһϣ¬Èç¹ûÒªÓõ½µÄ±äÁ¿±ØÐ붨ÒåÔÚ³ÌÐòµÄÊý¾Ý¶ÎÀïÃ棬¼ÙÉèÔÚÒ»¸ö×Ó³ÌÐòÖÐÒªÓõ½Ò»Ð©±äÁ¿£¬µ±°ÑÕâ¸ö×Ó³ÌÐòÒÆÖ²µ½±ðµÄ³ÌÐòʱ£¬³ýÁË°Ñ´úÂëÒƹýÈ¥ÒÔÍ⣬»¹±ØÐë°Ñ±äÁ¿¶¨ÒåÒƹýÈ¥¡£¶ø¼´Ê¹°Ñ±äÁ¿¶¨ÒåÒƹýÈ¥ÁË£¬ÓÉÓÚÕâЩ±äÁ¿¶¨ÒåÔÚ´ó¼Ò¶¼¿ÉÒÔÓõÄÊý¾Ý¶ÎÖУ¬¾ÍÎÞ·¨¶Ô±ðµÄ´úÂë±£³Ö͸Ã÷£¬±ðµÄ´úÂëÓпÉÄÜÓÐÒâÎÞÒâµØÐÞ¸ÄËüÃÇ¡£»¹ÓУ¬ÔÚÒ»¸ö´óµÄ¹¤³ÌÏîÄ¿ÖУ¬´æÔںܶàµÄ×Ó³ÌÐò£¬ËùÓеÄ×Ó³ÌÐòÒªÓõ½µÄ±äÁ¿È«²¿¶¨Òåµ½Êý¾Ý¶ÎÖУ¬»áʹÊý¾Ý¶Î±äµÃºÜ´ó£¬»ìÔÚÒ»ÆðµÄ±äÁ¿Ò²Ê¹Î¬»¤±äµÃ·Ç³£²»·½±ã¡£
¾Ö²¿±äÁ¿Õâ¸ö¸ÅÄî³öÏÖÒÔºó£¬Á½¸öÒÔÉÏ×Ó³ÌÐò¶¼ÒªÓõ½µÄÊý¾Ý²Å±»¶¨ÒåΪȫ¾Ö±äÁ¿Í³Ò»·ÅÔÚÊý¾Ý¶ÎÖУ¬½öÔÚ×Ó³ÌÐòÄÚ²¿Ê¹ÓõıäÁ¿Ôò·ÅÔÚ¶ÑÕ»ÖУ¬ÕâÑù×Ó³ÌÐò¿ÉÒÔ±à³É¡°ºÚÏ»×Ó¡±µÄÄ£Ñù£¬Ê¹³ÌÐòµÄÄ£¿é½á¹¹¸ü¼Ó·ÖÃ÷¡£
¾Ö²¿±äÁ¿µÄ×÷ÓÃÓòÊǵ¥¸ö×Ó³ÌÐò£¬ÔÚ½øÈë×Ó³ÌÐòµÄʱºò£¬Í¨¹ýÐ޸ĶÑÕ»Ö¸ÕëespÀ´Ô¤Áô³öÐèÒªµÄ¿Õ¼ä£¬ÔÚÓÃretÖ¸Áî·µ»ØÖ÷³ÌÐò֮ǰ£¬Í¬Ñùͨ¹ý»Ö¸´esp¶ªÆúÕâЩ¿Õ¼ä£¬ÕâЩ±äÁ¿¾ÍËæÖ®ÎÞЧÁË¡£ËüµÄȱµã¾ÍÊÇÒòΪ¿Õ¼äÊÇÁÙʱ·ÖÅäµÄ£¬ËùÒÔÎÞ·¨¶¨Ò庬Óгõʼ»¯ÖµµÄ±äÁ¿£¬¶Ô¾Ö²¿±äÁ¿µÄ³õʼ»¯Ò»°ãÔÚ×Ó³ÌÐòÖÐÓÉÖ¸ÁîÍê³É¡£
ÔÚDOSʱ´ú£¬µÍ°æ±¾µÄºê»ã±à±¾À´ÎÞËùνȫ¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿£¬ËùÓеıäÁ¿¶¼ÊǶ¨ÒåÔÚÊý¾Ý¶ÎÀïÃæµÄ£¬ÄÜÈñ»ËùÓеÄ×Ó³ÌÐò»òÖ÷³ÌÐò´æÈ¡£¬¾ÍÏ൱ÓÚÏÖÔÚËù˵µÄÈ«¾Ö±äÁ¿£¬Óûã±àÓïÑÔÔÚ¶ÑÕ»Öж¨Òå¾Ö²¿±äÁ¿ÊǺÜÂé·³µÄÒ»¼þÊÂÇé¡£ÒªºÍ¸ß¼¶ÓïÑÔ×ö»ìºÏ±à³ÌµÄʱºò£¬³ÌÐòÔ±ÍùÍùºÜÍ´¿àµØÔÚ±ßÉÏ×¼±¸Ò»ÕÅ±í£¬±íÉϵÄÄÚÈÝÊǾֲ¿±äÁ¿ÃûºÍebpÖ¸ÕëµÄλÖùØϵ¡£
1¡£¡¡¾Ö²¿±äÁ¿µÄ¶¨Òå
MASMÓÃlocalαָÁîÌṩÁ˶Ծֲ¿±äÁ¿µÄÖ§³Ö¡£¶¨ÒåµÄ¸ñʽÊÇ£º
local¡¡¡¡¡¡¡¡¡¡¡¡¡¡±äÁ¿Ãû1£§£§Öظ´ÊýÁ¿£§£§£§£ºÀàÐÍ£§£»±äÁ¿Ãû2£§£§Öظ´ÊýÁ¿£§£§£§£ºÀàÐÍ£§¡¡
localαָÁî±ØÐë½ô½ÓÔÚ×Ó³ÌÐò¶¨ÒåµÄαָÁîprocºó¡¢ÆäËûÖ¸Áʼǰ£¬ÕâÊÇÒòΪ¾Ö²¿±äÁ¿µÄÊýÄ¿±ØÐëÔÚ×Ó³ÌÐò¿ªÊ¼µÄʱºò¾ÍÈ·¶¨ÏÂÀ´£¬ÔÚÒ»¸ölocalÓï¾ä¶¨Ò岻ϵÄʱºò£¬¿ÉÒÔÓжà¸ölocalÓï¾ä£¬Óï·¨ÖеÄÊý¾ÝÀàÐͲ»ÄÜÓñí3¡£2ÖеÄËõд£¬Èç¹ûÒª¶¨ÒåÊý¾Ý½á¹¹£¬¿ÉÒÔÓÃÊý¾Ý½á¹¹µÄÃû³Æµ±×öÀàÐÍ¡£Win32»ã±àĬÈϵÄÀàÐÍÊÇdword£¬Èç¹û¶¨ÒådwordÀàÐ͵ľֲ¿±äÁ¿£¬ÔòÀàÐÍ¿ÉÒÔÊ¡ÂÔ¡£µ±¶¨ÒåÊý×éµÄʱºò£¬¿ÉÒÔ¡¡£§£§¡¡À¨ºÅÀ¨ÆðÀ´¡£²»ÄÜʹÓö¨ÒåÈ«¾Ö±äÁ¿µÄdupαָÁî¡£¾Ö²¿±äÁ¿²»ÄܺÍÒѶ¨ÒåµÄÈ«¾Ö±äÁ¿Í¬Ãû¡£¾Ö²¿±äÁ¿µÄ×÷ÓÃÓòÊǵ±Ç°µÄ×Ó³ÌÐò£¬ËùÒÔÔÚ²»Í¬µÄ×Ó³ÌÐòÖпÉÒÔÓÐͬÃûµÄ¾Ö²¿±äÁ¿¡£
ÕâÀïÓм¸¸ö¶¨Òå¾Ö²¿±äÁ¿µÄÀý×Ó£º
local¡¡¡¡¡¡¡¡¡¡¡¡loc1£§1024£§£ºbyte¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý1
local¡¡¡¡¡¡¡¡¡¡¡¡loc2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý2
local¡¡¡¡¡¡¡¡¡¡¡¡loc3£ºWNDCLASS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£»Àý3
¡ñ¡¡¡¡¡¡Àý1¶¨ÒåÁËÒ»¸ö1¡¡024×Ö½Ú³¤µÄ¾Ö²¿±äÁ¿loc1¡£
¡ñ¡¡¡¡¡¡Àý2¶¨ÒåÁËÒ»¸öÃûΪloc2µÄ¾Ö²¿±äÁ¿£¬ÀàÐÍÊÇĬÈÏÖµdword¡£
¡ñ¡¡¡¡¡¡Àý3¶¨ÒåÁËÒ»¸öWNDCLASSÊý¾Ý½á¹¹£¬ÃûΪloc3¡£
ÏÂÃæÊǾֲ¿±äÁ¿Ê¹ÓõÄÒ»¸öµäÐ͵ÄÀý×Ó£º
TestProc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡@loc1£ºdword£»@loc2£ºword
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡@loc3£ºbyte
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡eax£»@loc1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡ax£»@loc2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡al£»@loc3
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
TestProc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
ÕâÊÇÒ»¸öÃûΪTestProcµÄ×Ó³ÌÐò£¬ÓÃlocalÓï¾ä¶¨ÒåÁË3¸ö±äÁ¿£¬@loc1ÊÇdwordÀàÐÍ£¬@loc2ÊÇwordÀàÐÍ£¬@loc3ÊÇbyteÀàÐÍ£¬ÔÚ³ÌÐòÖзֱðÓÐ3¾ä´æÈ¡3¸ö¾Ö²¿±äÁ¿µÄÖ¸ÁȻºó¾Í·µ»ØÁË£¬±àÒë³É¿ÉÖ´ÐÐÎļþºó£¬ÔÙ°ÑËü·´»ã±à¾ÍµÃµ½ÁËÒÔÏÂÖ¸Á
£º00401000¡¡55¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡ebp
£º00401001¡¡8BEC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡ebp£»¡¡esp
£º00401003¡¡83C4F8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡esp£»¡¡FFFFFFF8
£º00401006¡¡8B45FC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡eax£»¡¡dword¡¡ptr¡¡£§ebp¡04£§
£º00401009¡¡668B45FA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡ax£»¡¡word¡¡ptr¡¡£§ebp¡06£§
£º0040100D¡¡8A45F9¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡al£»¡¡byte¡¡ptr¡¡£§ebp¡07£§
£º00401010¡¡C9¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡leave
£º00401011¡¡C3¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¿ÉÒÔ¿´µ½£¬·´»ã±àºóµÄÖ¸Áî±ÈÔ´³ÌÐò¶àÁËÇ°ºóÁ½¶ÎÖ¸ÁËüÃÇÊÇ£º
£º00401000¡¡55¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡ebp
£º00401001¡¡8BEC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡ebp£»¡¡esp
£º00401003¡¡83C4F8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡esp£»¡¡FFFFFFF8
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
£º00401010¡¡C9¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡leave
ÕâЩ¾ÍÊÇʹÓþֲ¿±äÁ¿Ëù±ØÐèµÄÖ¸Á·Ö±ðÓÃÓÚ¾Ö²¿±äÁ¿µÄ×¼±¸¹¤×÷ºÍɨβ¹¤×÷¡£Ö´ÐÐÁËcallÖ¸Áîºó£¬CPU°Ñ·µ»ØµÄµØַѹÈë¶ÑÕ»£¬ÔÙתÒƵ½×Ó³ÌÐòÖ´ÐУ¬espÔÚ³ÌÐòµÄÖ´Ðйý³ÌÖпÉÄÜËæʱÓõ½£¬²»¿ÉÄÜÓÃespÀ´Ëæʱ´æÈ¡¾Ö²¿±äÁ¿£¬´ó¼ÒÒ»¶¨ÓÐÓ¡Ïó£¬ÔÚ½éÉܼĴæÆ÷µÄʱºòÌáµ½¹ýebp¼Ä´æÆ÷Ò²ÊÇÒÔ¶ÑÕ»¶ÎΪĬÈÏÊý¾Ý¶ÎµÄ£¬ËùÒÔ£¬¿ÉÒÔÓÃebp×öÖ¸Õ룬ÓÚÊÇ£¬ÔÚ³õʼ»¯Ç°£¬ÏÈÓÃÒ»¾äpush¡¡ebpÖ¸Áî°ÑÔÀ´µÄebp±£´æÆðÀ´£¬È»ºó°ÑespµÄÖµ·Åµ½ebpÖУ¬¹©´æÈ¡¾Ö²¿±äÁ¿×öÖ¸ÕëÓã¬ÔÙºóÃæ¾ÍÊÇÔÚ¶ÑÕ»ÖÐÔ¤Áô¿Õ¼äÁË£¬ÓÉÓÚ¶ÑÕ»ÊÇÏòÏÂÔö³¤µÄ£¬ËùÒÔÒªÔÚespÖмÓÒ»¸ö¸ºÖµ£¬FFFFFFF8¾ÍÊǨC8¡£Âý×Å£¡Ò»¸ödword¼ÓÒ»¸öword¼ÓÒ»¸ö×Ö½Ú²»ÊÇ7Âð£¬ÎªÊ²Ã´ÊÇ8ÄØ£¿ÕâÊÇÒòΪÔÚ80386´¦ÀíÆ÷ÖУ¬ÒÔdwordΪ½ç¶ÔÆëʱ´æÈ¡ÄÚ´æËÙ¶È×î¿ì£¬ËùÒÔMASMÄþ¿ÉÀË·ÑÒ»¸ö×Ö½Ú£¬Ö´ÐÐÁËÕâ3¾äÖ¸Áîºó£¬³õʼ»¯Íê³É£¬¾Í¿ÉÒÔ½øÐÐÕý³£µÄ²Ù×÷ÁË£¬´ÓÖ¸ÁîÖпÉÒÔ¿´³ö¾Ö²¿±äÁ¿ÔÚ¶ÑÕ»ÖеÄλÖÃÅÅÁУ¬Èç±í3¡£3Ëùʾ¡£
±í3¡£3¡¡¡¡ÉÏÀýÖоֲ¿±äÁ¿ÅÅÁеÄ˳Ðò
ebpÆ«ÒÆ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÄÚ¡¡¡¡¡¡¡¡ÈÝ
¡¡
ebp£«4
¡¡ÓÉcallÍÆÈëµÄ·µ»ØµØÖ·
¡¡
Ebp
¡¡push¡¡ebpÖ¸ÁîÍÆÈëµÄÔebpÖµ£¬È»ºóеÄebp=ÏÖÔÚµÄesp
¡¡
ebp¡4
¡¡µÚÒ»¸ö¾Ö²¿±äÁ¿
¡¡
ebp¡6
¡¡µÚ¶þ¸ö¾Ö²¿±äÁ¿
¡¡
ebp¡7
¡¡µÚÈý¸ö¾Ö²¿±äÁ¿
¡¡
ÔÚ³ÌÐòÍ˳öµÄʱºò£¬±ØÐë°ÑÕýÈ·µÄespÉèÖûØÈ¥£¬·ñÔò£¬retÖ¸Áî»á´Ó¶ÑÕ»ÖÐÈ¡³ö´íÎóµÄµØÖ··µ»Ø£¬¿´³ÌÐò¿ÉÒÔ·¢ÏÖ£¬ebp¾ÍÊÇÕýÈ·µÄespÖµ£¬ÒòΪ×Ó³ÌÐò¿ªÊ¼µÄʱºòÒѾÓÐÒ»¾ämov¡¡ebp£»esp£¬ËùÒÔÒª·µ»ØµÄʱºòÖ»ÒªÏÈmov¡¡esp£»ebp£¬È»ºóÔÙpop¡¡ebp£¬¶ÑÕ»¾ÍÊÇÕýÈ·µÄÁË¡£
ÔÚ80386Ö¸ÁÖÐÓÐÒ»ÌõÖ¸Áî¿ÉÒÔÔÚÒ»¾äÖÐʵÏÖÕâ¸ö¹¦ÄÜ£¬¾ÍÊÇleaveÖ¸ÁËùÒÔ£¬±àÒëÆ÷ÔÚretÖ¸Áî֮ǰֻʹÓÃÁËÒ»¾äleaveÖ¸Áî¡£
Ã÷°×Á˾ֲ¿±äÁ¿Ê¹ÓõÄÔÀí£¬¾ÍºÜÈÝÒ×Àí½âʹÓÃʱµÄ×¢Òâµã£ºebp¼Ä´æÆ÷Êǹؼü£¬ËüÆðµ½±£´æÔʼespµÄ×÷Ó㬲¢ËæʱÓÃ×ö´æÈ¡¾Ö²¿±äÁ¿µÄÖ¸Õë»ùÖ·£¬ËùÒÔÔÚÈκÎʱ¿Ì£¬²»Òª³¢ÊÔ°ÑebpÓÃÓÚ±ðµÄÓÃ;£¬·ñÔò»á´øÀ´ÒâÏë²»µ½µÄºó¹û¡£
Win32»ã±àÖоֲ¿±äÁ¿µÄʹÓ÷½·¨¿ÉÒÔ½âÊÍÒ»¸öºÜÓÐȤµÄÏÖÏó£ºÔÚDOS»ã±àµÄʱºò£¬Èç¹ûÔÚ×Ó³ÌÐòÖеÄpushÖ¸ÁîºÍpopÖ¸Áî²»Åä¶Ô£¬ÄÇô·µ»ØµÄʱºòretÖ¸Áî´Ó¶ÑÕ»ÀïµÃµ½µÄ¿Ï¶¨ÊÇ´íÎóµÄ·µ»ØµØÖ·£¬³ÌÐòÒ²¾ÍËÀµôÁË¡£µ«ÔÚWin32»ã±àÖУ¬pushÖ¸ÁîºÍpopÖ¸Áî²»Åä¶Ô¿ÉÄÜÔÚÂß¼ÉϲúÉú´íÎó£¬È´²»»áÓ°Ïì×Ó³ÌÐòÕý³£·µ»Ø£¬ÔÒò¾ÍÊÇÔÚ·µ»ØµÄʱºòesp²»ÊÇ¿¿ÏàͬÊýÁ¿µÄpushºÍpopÖ¸ÁîÀ´±£³ÖÒ»Öµģ¬¶øÊÇ¿¿leaveÖ¸Áî´Ó±£´æÔÚebpÖеÄÔʼֵÖÐÈ¡»ØÀ´µÄ£¬Ò²¾ÍÊÇ˵£¬¼´Ê¹°Ñesp¸ÄµÃÒ»ËúºýÍ¿Ò²²»»áÓ°Ïìµ½×Ó³ÌÐòµÄ·µ»Ø£¬µ±È»£¬¡°ÇÏÃÅ¡±¾ÍÔÚebp£¬°Ñebp¸Äµô£¬³ÌÐò¾ÍÍæÍêÁË£¡
2¡£¡¡¾Ö²¿±äÁ¿µÄ³õʼ»¯Öµ
ÏÔÈ»£¬¾Ö²¿±äÁ¿ÊÇÎÞ·¨ÔÚ¶¨ÒåµÄʱºòÖ¸¶¨³õʼ»¯ÖµµÄ£¬ÒòΪlocalαָÁîÖ»ÊǼòµ¥µØ°Ñ¿Õ¼ä¸øÁô³öÀ´£¬ÄÇô¿ªÊ¼Ê¹ÓÃʱËüÀïÃæÊÇʲôֵÄØ£¿ºÍÈ«¾Ö±äÁ¿²»Ò»Ñù£¬¾Ö²¿±äÁ¿µÄÆðʼֵÊÇËæ»úµÄ£¬ÊÇÆäËû×Ó³ÌÐòÖ´ÐкóÔÚ¶ÑÕ»ÀïÁôϵÄÀ¬»ø£¬ËùÒÔ£¬¶Ô¾Ö²¿±äÁ¿µÄÖµÒ»¶¨Òª³õʼ»¯£¬ÌرðÊǶ¨ÒåΪ½á¹¹ºóµ±²ÎÊý´«µÝ¸øAPIº¯ÊýµÄʱºò¡£
¡¡ÔÚAPIº¯ÊýʹÓõĴóÁ¿Êý¾Ý½á¹¹ÖУ¬ÍùÍùÓÃ0×öĬÈÏÖµ£¬Èç¹ûÓþֲ¿±äÁ¿¶¨ÒåÊý¾Ý½á¹¹£¬³õʼ»¯Ê±Ö»¶¨ÒåÁËÆäÖеÄһЩ×ֶΣ¬ÄÇôÆäÓà×ֶεĵ±Ç°Öµ¿ÉÒÔÊDZà³ÌÕßÔ¤Ïë²»µ½µÄÊýÖµ£¬´«¸øAPIº¯Êýºó£¬Ö´ÐеĽá¹û¿ÉÄÜÊÇÒâÏë²»µ½µÄ£¬ÕâÊdzõѧÕߺÜÈÝÒ׺öÂÔµÄÒ»¸öÎÊÌâ¡£ËùÒÔ×îºÃµÄ°ì·¨ÊÇ£ºÔÚ¸³ÖµÇ°Ê×ÏȽ«Õû¸öÊý¾Ý½á¹¹Ìî0£¬È»ºóÔÙ³õʼ»¯ÒªÓõÄ×ֶΣ¬ÕâÑùÆäÓàµÄ×ֶξͲ»±ØÒ»¸ö¸öµØÈ¥Ìî0ÁË£¬RtlZeroMemoryÕâ¸öAPIº¯Êý¾ÍÊÇʵÏÖÌî0µÄ¹¦Äܵġ£
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ3Õ¡¡Ê¹ÓÃMASM
3¡£3¡¡±êºÅ¡¢±äÁ¿ºÍÊý¾Ý½á¹¹£¨3£©
¡¡¡¡¡¡¡¡
3¡£3¡£4¡¡¡¡Êý¾Ý½á¹¹
Êý¾Ý½á¹¹Êµ¼ÊÉÏÊÇÓɶà¸ö×Ö¶Î×é³ÉµÄÊý¾Ý¡°Ñù°å¡±£¬Ï൱ÓÚÒ»ÖÖ×Ô¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬Êý¾Ý½á¹¹ÖмäµÄÿһ¸ö×ֶοÉÒÔÊÇ×Ö½Ú¡¢×Ö¡¢Ë«×Ö¡¢×Ö·û´®»òËùÓпÉÄܵÄÊý¾ÝÀàÐÍ¡£±ÈÈçÔÚAPIº¯ÊýRegisterClassÖÐҪʹÓõ½Ò»¸ö½Ð×öWNDCLASSµÄÊý¾Ý½á¹¹£¬MicrosoftµÄÊÖ²áÉÏÊÇÈç϶¨ÒåµÄ£º
typedef¡¡struct¡¡_WNDCLASS¡¡£û
¡¡¡¡¡¡¡¡UINT¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡style£»
¡¡¡¡¡¡¡¡WNDPROC¡¡¡¡¡¡¡¡¡¡¡¡lpfnWndProc£»
¡¡¡¡¡¡¡¡Int¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cbClsExtra£»
¡¡¡¡¡¡¡¡int¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cbWndExtra£»
¡¡¡¡¡¡¡¡HINSTANCE¡¡¡¡¡¡¡¡hInstance£»
¡¡¡¡¡¡¡¡HICON¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hIcon£»
¡¡¡¡¡¡¡¡HCURSOR¡¡¡¡¡¡¡¡¡¡¡¡hCursor£»
¡¡¡¡¡¡¡¡HBRUSH¡¡¡¡¡¡¡¡¡¡¡¡¡¡hbrBackground£»
¡¡¡¡¡¡¡¡LPCTSTR¡¡¡¡¡¡¡¡¡¡¡¡lpszMenuName£»
¡¡¡¡¡¡¡¡LPCTSTR¡¡¡¡¡¡¡¡¡¡¡¡lpszClassName£»
£ý¡¡WNDCLASS£»¡¡*PWNDCLASS£»
×¢Ò⣬ÕâÊÇCÓïÑÔ¸ñʽµÄ£¬Õâ¸öÊý¾Ý½á¹¹°üº¬ÁË10¸ö×ֶΣ¬×ֶεÄÃû³ÆÊÇstyle£¬lpfnWndProcºÍcbClsExtraµÈ£¬Ç°ÃæµÄUINTºÍWNDPROCµÈÊÇÕâЩ×ֶεÄÀàÐÍ£¬ÔÚ»ã±àÖУ¬Êý¾Ý½á¹¹µÄд·¨ÈçÏ£º
½á¹¹Ãû¡¡¡¡¡¡¡¡struct
¡¡
×Ö¶Î1¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡¡¡¡¡£¿
×Ö¶Î2¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡
¡¡
½á¹¹Ãû¡¡¡¡¡¡¡¡ends
ÉÏÃæµÄWNDCLASS½á¹¹¶¨ÒåÓûã±àµÄ¸ñʽÀ´±íʾ¾ÍÊÇ£º
WNDCLASS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡struct
¡¡
Style¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
LpfnWndProc¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
cbClsExtra¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
cbWndExtra¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
hInstance¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
hIcon¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
hCursor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
hbrBackground¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
lpszMenuName¡¡¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
lpszClassName¡¡¡¡¡¡DWORD¡¡¡¡¡¡¡¡¡¡¡¡£¿
¡¡
WNDCLASS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ends
ºÍ´ó²¿·ÖµÄ³£Á¿Ò»Ñù£¬¼¸ºõËùÓÐAPIËùÉæ¼°µÄÊý¾Ý½á¹¹ÔÚWindows¡£incÎļþÖж¼ÒѾÓж¨ÒåÁË¡£Òª×¢ÒâµÄÊÇ£¬¶¨ÒåÁËÊý¾Ý½á¹¹Êµ¼ÊÉÏÖ»ÊǶ¨ÒåÁËÒ»¸ö¡°Ñù°å¡±£¬ÉÏÃæµÄ¶¨ÒåÓï¾ä²¢²»»áÔÚÄĸö¶ÎÖвúÉúÊý¾Ý£¬ºÍWordÖÐʹÓø÷ÖÖ¡°ÐÅÖ½¡±Óë¡°ÎÄÊ顱µÈÄ£°åÀàËÆ£¬¶¨ÒåÁËÊý¾Ý½á¹¹ÒÔºó¾Í¿ÉÒÔ¶à´ÎÔÚÔ´³ÌÐòÖÐÓÃÕâ¸ö¡°Ñù°å¡±µ±×öÊý¾ÝÀàÐÍÀ´¶¨ÒåÊý¾Ý£¬Ê¹ÓÃÊý¾Ý½á¹¹ÔÚÊý¾Ý¶ÎÖж