ÆäÖÐEAÊÇÓÐDSTµÄѰַ·½Ê½ËùÈ·¶¨µÄÓÐЧµØÖ·¡£ 3) ¶Î¼äÖ±½Óµ÷Óà ¸ñʽ£ºCALL DST Ö´ÐеIJÙ×÷£º1) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (CS) (SP)¡´--(SP) - 2£» ((SP)+1£¬(SP))¡´-- (IP) 2) (IP)¡´-- Æ«ÒÆµØÖ·(Ö¸ÁîµÄµÚ2¡¢3¸ö×Ö½Ú) (CS)¡´-- ¶ÎµØÖ·(Ö¸ÁîµÄµÚ4¡¢5¸ö×Ö½Ú) ËüͬÑùÊÇÏȱ£Áô·µ»ØµØÖ·£¬È»ºó×ªÒÆµ½ÓÉDSTÖ¸¶¨µÄתÏòµØÖ·È¥Ö´ÐС£ÓÉÓÚµ÷ÓóÌÐòºÍ×Ó³ÌÐò²»ÔÚͬһ¸ö¶ÎÄÚ£¬Òò´Ë·µ»ØµØÖ·µÄ±£´æÒÔ¼°×ªÏòµØÖ·µÄÉèÖö¼±ØÐë°Ñ¶ÎµØÖ·¿¼ÂÇÔÚÄÚ¡£ 4) ¶Î¼ä¼ä½Óµ÷Óà ¸ñʽ£ºCALL DST Ö´ÐеIJÙ×÷£º1) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (CS) (SP)¡´-- (SP)- 2£» ((SP)+1£¬(SP))¡´-- (IP) 2) (IP)¡´-- (EA)£» (CS)¡´-- (EA+2) ÆäÖÐEAÊÇÓÉDSTµÄѰַ·½Ê½È·¶¨µÄÓÐЧµØÖ·¡£ ÔÚÉÏÊöCALLÖ¸ÁîµÄ¸ñʽÖУ¬²¢Ã»ÓмÓÉÏÈçNEAT PRT¸ñʽµÄÊôÐÔ²Ù×÷·û£¬ÔÚʵ¼ÊʹÓÃʱ£¬¶ÁÕ߿ɸù¾Ý¾ßÌåÇé¿ö¼ÓÉÏËü¡£Ê¹Ó÷½·¨¿É²Î¿¼JMPÖ¸ÁîµÄ˵Ã÷ (2) RET(return)·µ»ØÖ¸Áî RETÖ¸Áî·ÅÔÚ×Ó³ÌÐòµÄĩ⣬Ëüʹ×Ó³ÌÐòÔÚ¹¦ÄÜÍê³Éºó·´»Øµ÷ÓüÌÐøÖ´ÐУ¬¶ø·µ»ØµØÖ·Êǵ÷ÓóÌÐòµ÷ÓÃ×Ó³ÌÐò(¼ò³Æ×ª×Ó)ʱ´æ·ÅÔÚ¶ÑÕ»Öеģ¬Òò´ËRETÖ¸ÁîµÄ²Ù×÷ÊÇ·µ»ØµØÖ·³öÕ»ËÍIP¼Ä´æÆ÷(¶ÎÄÚ»ò¶Î¼ä)ºÍCS¼Ä´æÆ÷(¶Î¼ä)¡£ 1) ¶ÎÄÚ·µ»Ø ¸ñʽ£ºRET Ö´ÐеIJÙ×÷£º1) (IP)¡´-- ((SP)+1£¬(SP)) 2) (SP)¡´-- (SP)+2 2) ¶ÎÄÚ´øÁ¢¼´Êý·µ»Ø ¸ñʽ£ºRET EXP Ö´ÐеIJÙ×÷£º1) (IP)¡´-- ((SP)+1£¬(SP)) 2) (SP)¡´-- (SP)+2£» (SP)¡´-- (SP)+D16 ÆäÖÐEXPÊÇÒ»¸ö±í´ïʽ£¬¸ù¾ÝËüµÄÖµ¼ÆËã³öÀ´µÄ³£Êý³ÉΪ»úÆ÷Ö¸ÁîµÄÎ»ÒÆÁ¿D16¡£ÕâÖÖÖ¸ÁîÔÊÐí·µ»ØµØÖ·³öÕ»ºóÐ޸ĶÑÕ»µÄÖ¸Õ룬מͱãÓÚµ÷ÓóÌÐòÔÚÓÃCALLÖ¸Áîµ÷ÓÃ×Ó³ÌÐòÒÔǰ°Ñ×Ó³ÌÐòËùÐèÒªµÄ²ÎÊýÈëÕ»£¬ÒÔ±ã×Ó³ÌÐòÔËÐÐʱʹÓÃÕâЩ²ÎÊý¡£µ±×Ó³ÌÐò·µ»Øºó£¬ÕâЩ²ÎÊýÒѲ»ÔÙÓÐÓ㬾ͿÉÒÔÐÞ¸ÄÖ¸ÕëʹÆäÖ¸Ïò²ÎÊýÒÔǰµÄÖµ¡£ 3) ¶Î¼ä·µ»Ø ¸ñʽ£ºRET Ö´ÐеIJÙ×÷£º1) (IP)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 2) (CS)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 4) ¶Î¼ä´øÁ¢¼´Êý·µ»Ø ¸ñʽ£ºRET EXP Ö´ÐеIJÙ×÷£º1) (IP)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 (CS)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 2) (SP)¡´-- (SP)+D16 ÕâÀïEXPµÄº¬Ò弰ʹÓÃÇé¿öÓë¶ÎÄÚ´øÁ¢¼´Êý·µ»ØÖ¸ÁîÏàͬ¡£ CALLÖ¸ÁîºÍRETÖ¸Áî¶¼²»Ó°ÏìÌõ¼þÂë¡£
17
5.ÖÐ¶Ï ÓÐʱµ±ÏµÍ³ÔËÐлòÕß³ÌÐòÔËÐÐÆÚ¼äÔÚÓöµ½Ä³Ð©ÌØÊâÇé¿öʱ£¬ÐèÒª¼ÆËã»ú×Ô¶¯Ö´ÐÐÒ»×éרÃŵÄÀýÐгÌÐòÀ´½øÐд¦Àí¡£ÕâÖÖÇé¿ö³ÆÎªÖжϣ¬ËùÖ´ÐеÄÕâ×é³ÌÐò³ÆÎªÖжÏÀýÐгÌÐò»òÖжÏ×Ó³ÌÐò¡£ÖжϷÖΪÄÚ²¿ÖжϺÍΪ²¿ÖжÏÁ½Àà¡£ÄÚ²¿ÖжϰüÀ¨Ïó³ý·¨ÔËËãÖÐÓöµ½ÐèÒª³ýÒÔ0ʱËù²úÉúµÄÖжϣ¬»òÕß³ÌÐòÖÐΪÁË×÷ijЩ´¦Àí¶øÉèÖõÄÖжÏÖ¸ÁîµÈ¡£ÍⲿÖжÏÔòÖ÷ÒªÓÃÀ´´¦ÀíI/OÉ豸ÓëCPUÖ®¼äµÄͨÐÅ¡£ µ±CPUÏìÓ¦Ò»´ÎÖжÏʱ£¬Ò²ÒªºÍµ÷ÓÃ×Ó³ÌÐòʱÀàËÆµÄ°Ñ(IP)ºÍ(CS)±£´æÈëÕ»¡£³ý´ËÖ®ÍâΪÁËÄÜÈ«ÃæµÄ±£´æÏÖ³¡ÐÅÏ¢£¬ÒÔ±ãÖжϴ¦Àí½áÊøÊ±·µ»ØÏÖ³¡£¬»¹ÐèÒª°Ñ·´Ó³ÏÖ³¡×´Ì¬µÄ(PSW)±£´æÈëÕ»£¬È»ºó²ÅÄÜתµ½ÖжÏÀýÐгÌÐòÈ¥Ö´ÐС£µ±È»´Ó´ÓÖжϷ´»ØÊ±£¬³ýÒª»Ö¸´(IP)ºÍ(CS)Í⣬»¹ÐèÒª»Ö¸´(PSW)¡£ ÖжÏÀýÐгÌÐòµÄÈë¿ÚµØÖ·³ÆÎªÖжÏÏòÁ¿¡£ÔÚIBM-PC»úÖУ¬´æ´¢Æ÷µÄ×îµÍµØÖ·ÇøµÄ1024¸ö×Ö½Ú(µØÖ·´Ó00000Hµ½003FFH)ΪÖжÏÏòÁ¿Çø£¬ÆäÖдæ·Å×Å256ÖÖÀàÐÍÖжÏÀýÐгÌÐòµÄÈë¿ÚµØÖ·(ÖжÏÏòÁ¿)¡£ÓÉÓÚÿ¸öÖжÏÏòÁ¿Õ¼ÓÐ4¸ö×Ö½Úµ¥Ôª£¬ËùÒÔÖжÏÖ¸ÁîÖÐÖ¸¶¨µÄÀàÐͺÅNÐèÒª³ËÒÔ4²ÅÄÜÈ¡µÃËùÖ¸¶¨ÀàÐ͵ÄÏòÁ¿£¬ÀýÈçÈç¹ûÀàÐͺÅΪ9£¬ÔòÓëÆäÏàÓ¦µÄÖжÏÏòÁ¿´æ·ÅÔÚ00024~00027µ¥ÔªÖС£ÕâÀï½éÉÜÓйØÖж̵ļ¸ÌõÖ¸Áî¡£ (1)INT(Interrupt)ÖжÏÖ¸Áî ¸ñʽ£º INT TYPE »ò INT Ö´ÐеIJÙ×÷£º1) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (PSW) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP)¡´-- (CS) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (IP) 2) (IP)¡´-- (TYPE*4)£» (CS)¡´-- (TYPE*4+2) ÆäÖÐTYPEΪÀàÐͺţ¬Ëü¿ÉÒÔÊdz£Êý»ò³£Êý±í´ïÊÔ£¬ÆäÖµ±ØÐëÔÚ0~255µÄ·¶Î§ÄÚ£¬¸ñʽÖеÄINTÊÇÒ»¸ö×Ö½ÚµÄÖжÏÖ¸ÁËüÒþº¬µÄÀàÐͺÅΪ3¡£INTÖ¸Áî(°üÀ¨ÏÂÃæµÄINTO)ÔÚÖ´ÐÐÍêÒÔÉϵIJÙ×÷ºó£¬ÔÚ°ÑIFºÍTFλÖÃ0£¬µ«²»Ó°ÏìÆÚÓڵıê־λ¡£ (2) INTO(Interrupt if overflow) ÈôÒç³öÔòÖжÏÖ¸Áî ¸ñʽ£ºINTO Ö´ÐеIJÙ×÷£ºÈôOF=1Ôò£º 1) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (PSW) (SP)¡´-- (SP) - 2£» ((SP+1£¬(SP)¡´-- (CS) (SP)¡´-- (SP) - 2£» ((SP)+1£¬(SP))¡´-- (IP) 2) (IP)¡´-- (10H)£» (CS)¡´-- (12H) (3) IRET(Return form interrupt)´ÓÖжϷµ»ØÖ¸Áî ¸ñʽ£ºIRET Ö´ÐеIJÙ×÷£º1) (IP)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 (CS)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 2) (PSW)¡´-- ((SP)+1£¬(SP))£» (SP)¡´-- (SP)+2 ¸ÃÖ¸ÁîµÄ±ê־λÓɶÑÕ»ÖÐÈ¡³öµÄÖµÀ´ÉèÖᣠ4.3.6 ´¦Àí»ú¿ØÖÆÖ¸Áî 1.±êÖ¾´¦ÀíÖ¸Áî ³ýÓÐЩָÁîÓ°Ïì±êÖ¾Í⣬IBM-PC»ú»¹ÌṩÁËÒ»×éÉèÖûòÇå³ý±ê־λµÄÖ¸ÁËüÃÇÖ»Ó°Ïì±¾Ö¸ÁîÖ¸¶¨µÄ±êÖ¾£¬¶ø²»Ó°ÏìÆäËü±ê־λ¡£ÕâЩָÁîÊÇ£º ¡¤CLC½øÎ»Î»ÖÃ0Ö¸Áî(clear carry)£º CF? 0 ¡¤CMC½øÎ»Î»Çó·´1Ö¸Áî(complement carry)£º CF? CF ¡¤STC½øÎ»Î»ÖÃ1Ö¸Áî(Set carry)£º CF? 1
18
¡¤CLD·½Ïò±êÖ¾0Ö¸Áî(Clear direction)£º DF? 0 ¡¤STD·½Ïò±ê־λÖÃ1Ö¸Áî(Set direction) £º DF? 1 ¡¤CLIÖжϱêÖ¾ÖÃ0Ö¸Áî(Clear interrupt) £º IF? 0 ¡¤STIÖжϱêÖ¾ÖÃ1Ö¸Áî(Set interrupt) £ºIF? 1 2.ÆäËû´¦Àí»ú¿ØÖÆÖ¸Áî ÕâЩָÁî¿ÉÒÔ¿ØÖÆ´¦Àí»ú״̬£¬ËüÃǶ¼²»Ó°ÏìÌõ¼þÂë¡£ (1) NOP(NO OPERATION)ÎÞ²Ù×÷Ö¸Áî ¸ÃÖ¸Áî²»Ö´ÐÐÈκβÙ×÷£¬Æä»úÆ÷ÂëÕ¼ÓÐÒ»¸ö×Ö½Úµ¥Ôª£¬ÔÚµ÷ÊÔ³ÌÐòʱÍùÍùÓÃÕâÌõÖ¸ÁîÕ¼ÓÐÒ»¶¨µÄ´æ´¢µ¥Ôª£¬ÒÔ±ãÔÚÕýʽÔËÐÐʱÓÃÆäËûÖ¸ÁîÈ¡´ú¡£ (2) HLT(HALT)Í£»úÖ¸Áî ¸ÃÊÊÁä¿Éʹ»úÆ÷ÔÝÍ£¹¤×÷£¬Ê¹´¦Àí»ú´¦ÓÚÍ£»ú״̬ÒÔ±ãµÈ´ýÒ»´ÎÍⲿÖжϵ½À´£¬ÖжϽáÊøºó¿É¼ÌÐøÖ´ÐÐÏÂÃæµÄ³ÌÐò¡£ (3) WAIT(Wait)µÈ´ýÖ¸Áî ¸ÃÖ¸Áî¿Éʹ´¦Àí»ú´¦ÓÚ¿Õת״̬,ËûÒ²¿ÉÒÔÓÃÀ´µÈ´ýÍⲿÖжϷ¢Éú,µ«ÖжϽáÊøºó·µ»ØWAITÖ¸Áî¼ÌÐøµÈ´ý¡£ (4) ESC(Escape)»»ÂëÖ¸Áî ¸ñʽ£ºESC mem ÆäÖÐmemÖ¸³öÒ»¸ö´æ´¢µ¥Ôª£¬ESCÊÊÁä°Ñ¸Ã´æ´¢µ¥ÔªµÄÄÚÈÝË͵½Êý¾Ý×ÜÏßÈ¥¡£µ±È»ESCÖ¸Áî²»ÔÊÐíʹÓÃÁ¢¼´ÊýºÍ¼Ä´æÆ÷Ѱַ·½Ê½¡£ÕâÌõÖ¸ÁîÔÚʹÓÃд¦Àí»ú(Coprocessor)Ö´ÐÐijЩ²Ù×÷ʱ£¬¿É´Ó´æ´¢Æ÷È¡µÃÖ¸Áî»ò²Ù×÷Êý.д¦Àí»ú(Èç8087)ÔòÊÇΪÌá¸ßËٶȶø¿ÉÒÔÑ¡ÅäµÄÓ²¼þ¡£ (5) LOCK(Lock)·âËøÖ¸Áî ¸ÃÖ¸ÁîÊÇÒ»ÖÖǰ׺£¬Ëü¿ÉÓëÆäËüÖ¸ÁîÁªºÏ£¬ÓÃÀ´Î¬³Ö×ÜÏßµÄËø´æÐźÅÖ±µ½ÓëÆäÁªºÏµÄÖ¸ÁîÖ´ÐÐÍêΪֹ¡£µ±CPUÓëÆäËû´¦Àí»úÐͬ¹¤×÷ʱ£¬¸ÃÖ¸Áî¿É±ÜÃâÆÆ»µÓÐÓÃÐÅÏ¢¡£ ×÷ Òµ ½Ìѧ·´À¡
P138 4.9 4.10 4.12 4.14Ìâ 19