΢»úÔ­ÀíÓë½Ó¿Ú¼¼ÊõʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

¢Ú½«ËÍÆÁÄ»ÏÔʾÓÃ×Ó³ÌÐòʵÏÖ¡£ ¶þ£®·ÖÎöÉè¼ÆË¼Ïë

Óû§¿É½«³£ÓõľßÓÐÌØ¶¨¹¦ÄܵijÌÐò¶Î±àд³É×Ó³ÌÐòʹÓá£Ò»°ã¹ý³Ì¶¨Òåα²Ù×÷µÄ¸ñʽΪ£º ¹ý³ÌÃû PROC Attribute ¡­¡­ ¹ý³ÌÃû ENDP

AttributeÊÇÖ¸ÀàÐÍÊôÐÔ£¬¿ÉÒÔÊÇNEAR»òFAR£¬µ÷ÓóÌÐòºÍ¹ý³ÌÔÚͬһ¸ö´úÂë¶ÎÖÐʹÓÃNEAR£¬²»ÔÚͬһ¸ö´úÂë¶ÎÖУ¬Ê¹ÓÃFAR¡£ 1. ×Ó³ÌÐò¶ÎÄÚµ÷ÓÃÓë·µ»Ø

£¨1£©µ÷Óøñʽ£º CALL ¹ý³ÌÃû £¨2£©CPUÖ´ÐÐCALLÖ¸Áî

Ê×ÏȽ«¶Ï¿ÚµØÖ·Ñ¹Èë¶ÑÕ»£¬Îª·µ»Ø×ö×¼±¸£¬È»ºó°Ñ×Ó³ÌÐòÈë¿ÚµÄÓÐЧµØÖ·¡úIP£¬´Ó¶ø×ªÈë×Ó³ÌÐò¡£ £¨3£©·µ»ØÖ¸Á RET

ÔÚ¾ßÓÐNEARÊôÐÔµÄ×Ó³ÌÐòÖУ¬RETÖ¸Áî´ÓÕ»¶¥µ¯³ö2¸ö×Ö½Ú¡úIP£¬È»ºóSP+2¡úSP¡£´Ó¶ø»Øµ½¶Ïµã¡£ 2. ÈíÖжϳÌÐòÉè¼Æ £¨1£©Öжϣº

ÖжϾÍÊǵ±ÏµÍ³ÔËÐлòÕß³ÌÐòÔËÐÐÆÚ¼äÔÚÓöµ½Ä³Ð©ÌØÊâÇé¿öʱ£¬ÐèCPUÔÝÍ£Ö´ÐÐÏÖÐгÌÐò£¬×Ô¶¯È¥´¦ÀíËæ»úʼþ£¬´¦ÀíÍê±ÏºóÔÙ·µ»Ø±»ÖжϵijÌÐò£¬Õâһȫ¹ý³Ì³ÆÎªÖжϡ£´¦ÀíËæ»úʼþµÄ³ÌÐò£¬

13

¾Í³ÆÎªÖжϷþÎñ×Ó³ÌÐò¡£ÖжϷÖΪCPUÖжϣ¨Ïñ³ý·¨´íµÈ£©¡¢Èí¼þÖжϣ¨INT nÖ¸Áî¶øÒý·¢µÄÖжϣ©ºÍÓ²¼þÖжϣ¨ÓÉCPUÒÔÍâµÄÆ÷¼þ·¢³öµÄÖжÏÇëÇóÐźŶøÒý·¢µÄÖжϣ©¡£ £¨2£©ÖжÏÏòÁ¿

ÖжÏÏòÁ¿¾ÍÊÇÖжÏ×Ó³ÌÐòµÄÈë¿ÚµØÖ·£¨ÓɶλùÖ·CSºÍÓÐЧµØÖ·IP×é³É£¬Õ¼4¸ö×Ö½Ú£©´æ´¢ÔÚÖжÏÏòÁ¿±íÖС£Î¢»úϵͳÖпÉÒÔʹÓÃ0¡ª255¹²256¸öÖжϡ£µ±80x86ϵͳ¹¤×÷ÔÚʵģʽʱ£¬ÄÚ´æµÄ000H~3FFH±»ÓÃ×÷ÓÚÖжÏÏòÁ¿±í£¬ÏòÁ¿±íÖаüº¬ÁË256¸öÖжÏÈë¿Ú£¬²Î¼û±í10-1£¬¡¾±í6¡¿ÇÒÔÚϵͳÆô¶¯Ê±ÓÉBIOS»òDOS¸ºÔð³õʼ»¯¡£

£¨3£©ÈíÖжϳÌÐòÉè¼Æ

Óû§¿É×Ô¼º¿ª·¢ÖжϷþÎñ³ÌÐò£¬ÓÃËüÈ¡´úϵͳԭÓеķþÎñ³ÌÐò£¬¹ý³ÌÈçÏ£º

? ±àдÖжϷþÎñ×Ó³ÌÐò£¬ÓÃIRETÖ¸Áî·µ»Ø

? È·¶¨Ê¹ÓõÄÖжϺÅn£¬ÐÞ¸ÄÖжÏÏòÁ¿±íÖÐ4¡Án~4¡Án+3µ¥ÔªµÄ¶ÔÓ¦ÖжϷþÎñ³ÌÐòÈë¿Ú

? INT nÖ¸Áîµ÷ÓÃÖжϣ¬´ËʱCPU±£»¤ÏÖ³¡£º½«F¡¢CS¡¢IP¼Ä´æÆ÷ÈëÕ»£¬È»ºó´ÓÖжÏÏòÁ¿±íÖÐ4¡Án~4¡Án+3µ¥ÔªÈ¡³önÐÍÖжÏÏòÁ¿Ð´ÈëIP£¬CSÖУ¬CPU¸ù¾ÝCS£ºIPµÄֵתÏò·þÎñ×Ó³ÌÐò¡£ ? µ±Ö´ÐÐIRETʱ£¬»Ö¸´ÏÖ³¡£º´Ó¶ÑÕ»Öе¯³ö6¸ö×Ö½Ú´«Ë͸øIP¡¢CS¡¢F¼Ä´æÆ÷£¬»Øµ½¶Ïµã¼ÌÐøÖ´ÐС£

? ³ÌÐò½áÊø·µ»ØDOS֮ǰ£¬Òª»Ö¸´ÏµÍ³µÄÖжÏÏòÁ¿ÉèÖá£

14

Èý£® ³ÌÐòÇåµ¥¼°Ïà¹Ø×¢½â

£»ÊýÂëת»»¼°ÏÔʾ£ºÊµÑéÀûÓÃ47HºÅÖжϽ«Ò»×é×Ö·ûת»»³É16½øÖÆÊýÂ룬²¢ÔÚÆÁÄ»ÉÏÏÔʾ³öÀ´ DDATA SEGMENT CSBAK DW ? IPBAK DW ? MKBAK DB ? SW DW ?

MES DB 'The data in buf1 are:',0AH,0DH,'$' BUF1DB 11H,22H,33H,44H,55H,66H,77H,88H,99H

DB 0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00H DDATA ENDS

15

CODE SEGMENT

ASSUME CS:CODE,DS:DDATA START:

MOV MOV MOV ÖжÏʸÁ¿

MOV MOV MOV MOV MOV ¶¨ÒåÖжÏÈë¿Ú

CLD STOSW MOV MOV MOV STOSW MOV MOV

DX,OFFSET MES £»ÏÔʾÌáʾÐÅÏ¢ AX,ES:[DI] CSBAK,AX AX,SEG MYINT

£»±£´æÔ­ÓÐCS

ES,AX

DI,4*47H AX,ES:[DI] IPBAK,AX

£»±£´æÔ­ÓÐIP

AX,DDATA DS,AX AX,0

£»ÐÞ¸Ä47HºÅÖжϵÄ

AX,OFFSET MYINT £»ÐÞ¸ÄΪÓû§×Ô

AH,09H

21H;ÏÔʾBUF1ÖеÄÄÚÈÝ

16

INT