¢Ú½«ËÍÆÁÄ»ÏÔʾÓÃ×Ó³ÌÐòʵÏÖ¡£ ¶þ£®·ÖÎöÉè¼ÆË¼Ïë
Óû§¿É½«³£ÓõľßÓÐÌØ¶¨¹¦Äܵ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