µÚ4Õ ָÁîϵͳ£¨¶þ£© - ͼÎÄ

Ö´ÐеIJÙ×÷£º(DST)¡û(DST)¡Ä(SRC) (2) OR(or)Âß¼­»òÖ¸Áî ¸ñʽ£ºOR DST£¬SRC Ö´ÐеIJÙ×÷£º(DST)¡û(DST)¡Å(SRC) (3) NOT(not)Âß¼­·ÇÖ¸Áî ¸ñʽ£ºNOT DPR Ö´ÐеIJÙ×÷£º(OPR)¡û(OPR) (4) XOR(exclusive or)Òì»òÖ¸Áî ¸ñʽ£ºXOR DST£¬SRC Ö´ÐеIJÙ×÷£º(DST)¡û(DST)¡Å(SRC) (5) TEST(test)²âÊÔÖ¸Áî ¸ñʽ£ºTEST OPR1£¬OPR2 Ö´ÐеIJÙ×÷£º(OPR1)¡Ä(OPR2) Á½¸ö²Ù×÷ÊýÏàÓëµÄ½á¹û²»±£´æ£¬Ö»¸ù¾ÝÆäÌØÕ÷ÖÃÌõ¼þÂë¡£ ÒÔÉÏÎåÖÖÖ¸ÁîÖУ¬NOT²»ÔÊÐíʹÓÃÁ¢¼´Êý£¬ÆäËü4ÌõÖ¸Áî³ý·ÇÔ´²Ù×÷ÊýÊÇÁ¢¼´Êý£¬ÖÁÉÙÓÐÒ»¸ö²Ù×÷Êý±ØÐë´æ·ÅÔڼĴæÆ÷ÖУ¬ÁíÒ»¸ö²Ù×÷ÊýÔò¿ÉÒÔʹÓÃÈÎÒâѰַ·½Ê½¡£ËüÃǶԱê־λµÄÓ°ÏìÇé¿öÊÇ£ºNOTÖ¸Áî²»Ó°Ïì±ê־룬ÆäËü4ÖÖÖ¸ÁʹCFºÍOFΪ0£¬AFλÎÞ¶¨Ò壬¶øSF¡¢ZFºÍPFÔò¸ù¾ÝÔËËã½á¹ûÉèÖᣠ2£®ÒÆÎ»Ö¸Áî (1)SHL(shift logical left)Âß¼­×óÒÆÖ¸Áî ¸ñʽ£ºSHL OPR£¬CNT ÆäÖÐOPR¿ÉÒÔÊdzýÁ¢¼´ÊýÒÔÍâµÄÈκÎѰַ·½Ê½¡£ÒÆÎ»´ÎÊýÓÉCNT¾ö¶¨£¬CNT¿ÉÒÔÊÇ1»òCL¡£CNTΪ1Ê±Ö»ÒÆÒ»Î»£¬ÈçÐèÒªÒÆÎ»µÄ´ÎÊý´óÓÚ1£¬Ôò¿ÉÒÔÔÚ¸ÃÒÆÎ»Ö¸Áîǰ°ÑÒÆÎ»´ÎÊýÖÃÓÚCL¼Ä´æÆ÷ÖУ¬¶øÒÆÎ»Ö¸ÁîÖеÄCNTдΪCL¼´¿É¡£ÓйØOPR¼°CNTµÄ¹æ¶¨ÊÊÓÃÓÚÒÔϵÄÒÆÎ»Ö¸Áî¡£ (2)SAL(shift arithmetic left)ËãÊõ×óÒÆÖ¸Áî ¸ñʽ£ºSAL OPR£¬CNT Ö´ÐеIJÙ×÷£ºÓëSHLÏàͬ¡£ (3)SHR(shift logical right)Âß¼­ÓÒÒÆÖ¸Áî ¸ñʽ£ºSHR OPR£¬CNT Ö´ÐеIJÙ×÷£º½«(OPD)ÏòÓÒÒÆ¶¯¹æ¶¨µÄ´ÎÊý£¬×î¸ßλ²¹ÈëÏàÓ¦¸öÊýµÄ0£¬CFµÄÄÚÈÝΪ×îºóÒÆÈëλµÄÖµ¡£ (4)SAR(shift arithmetic right)ËãÊõÓÒÒÆÖ¸Áî ¸ñʽ£ºSAR OPR£¬CNT Ö´ÐеIJÙ×÷£º½«(OPD)ÏòÓÒÒÆ¶¯Ö¸¶¨µÄ´ÎÊýÇÒ×î¸ßλ±£³Ö²»±ä£¬CFµÄÄÚÈÝΪ×îºóÒÆÈëλµÄÖµ¡£¼´ÈçÔ­À´ÊÇ0ÔòÈÔΪ0£¬Ô­À´ÊÇ1ÔòÈÔΪ1¡£ (5)ROL(Rotate left)Ñ­»·×óÒÆÖ¸Áî ¸ñʽ£º ROL OPR£¬CNT Ö´ÐеIJÙ×÷£º½«Ä¿µÄ²Ù×÷ÊýµÄ×î¸ßλÓë×îµÍλÁ¬½ÓÆðÀ´£¬×é³ÉÒ»¸ö»·£¬½«»·ÖеÄËùÓÐλһÆðÏò×óÒÆ¹æ¶¨µÄ´ÎÊý¡£CFµÄÄÚÈÝΪ×îºóÒÆÈëµÄÖµ¡£ (6)ROR(Rotate right)Ñ­»·ÓÒÒÆÖ¸Áî ¸ñʽ£ºROR OPR£¬CNT Ö´ÐеIJÙ×÷£º¸ÃÓï¾äµÄÒÆ¶¯·½Ê½ÍêȫͬROL£¬Ö»ÊÇÏòÓÒÒÆ¶¯¡£ (7)RCL(Rotate left through carry)´ø½øÎ»Ñ­»·×óÒÆÖ¸Áî

9

¸ñʽ£ºRCL OPR£¬CNT Ö´ÐеIJÙ×÷£º½«Ä¿µÄ²Ù×÷ÊýÁ¬Í¬CF±êʶһÆðÏò×óÑ­»·Òƶ¯Ëù¹æ¶¨µÄ´ÎÊý (8)RCR RCL(Rotate left through carry)´ø½øÎ»Ñ­»·ÓÒÒÆÖ¸Áî ¸ñʽ£ºRCR OPR£¬CNT Ö´ÐеIJÙ×÷£º¸ÃÖ¸ÁîµÄ¹¦ÄÜÍêȫͬRCL£¬Ö»ÊÇÏòÓÒÒÆ¶¯¡£ ËùÓÐÒÆÎ»Ö¸Áî¶¼¿ÉÒÔ×÷×Ö»ò×Ö½Ú²Ù×÷.ËüÃǶÔÌõ¼þÂëµÄÓ°ÏìÊÇ£ºCFλ¸ù¾Ý¸÷ÌõÖ¸ÁîµÄ¹æ¶¨ÉèÖá£OFλֻÓе±CNT=1ʱ²ÅÊÇÓÐЧµÄ£¬ÔÚÒÆÎ»ºó×î¸ßÓÐЧλµÄÖµ·¢Éú±ä»¯Ê±(Ô­À´Îª0£¬ÒÆÎ»ºóΪ1£»»òÔ­À´Îª1£¬ÒÆÎ»ºóΪ0)OFλÖÃ1£¬·ñÔòÖÃ0¡£Ñ­»·ÒÆÎ»Ö¸Áî²»Ó°Ïì³ýCFºÍOFÒÔÍâµÄÆäËûÌõ¼þ±êÖ¾¡£¶øÒÆÎ»Ö¸ÁîÔò¸ù¾ÝÒÆÎ»ºóµÄ½á¹ûÉèÖÃSF¡¢ZFºÍPF룬AFλÔòÎÞ¶¨Òå¡£ Àý4.3.14£º Èç(AX)=0012H£¬(BX)=0034HÒªÇó°ÑËüÃÇ×°ÅäÔÚÒ»ÆðÐγÉ(AX)=1234H£¬¿É±àÖÆ³ÌÐòÈçÏ£º MOV CL£¬8 ROL AX£¬CL ADD AX£¬BX ÈçÖ¸ÁîÖ´ÐÐǰ£º(SI)=1450H£»ÔòÖ¸ÁîÖ´Ðкó£º(SI)=5140H£¬CF=0¡£ 4.3.4 ´®´¦ÀíÖ¸Áî ×Ö·û´®´¦ÀíÖ¸ÁîÓУºMOVS(Move string)´®´«ËÍ¡¢CMPS(Compatre string)´®±È½Ï¡¢SCAS(Scan string)´®É¨Ãè¡¢LODS(Load form string)´Ó´®È¡¡¢STOS(Store in to string)´æÈë´®µÈÎåÌõ¡£ÓëÉÏÊö»ù±¾Ö¸ÁîÅäºÏʹÓõÄǰ׺ÓУºREP(Repeat)ÖØ¸´¡¢REPE£¯REPZ(Repeat while equal£¯zero)ÏàµÈ£¯ÎªÁãÔòÖØ¸´¡¢REPE£¯REPNZ(Repeat while not equal£¯not zero)²»ÏàµÈ£¯²»ÎªÁãÔòÖØ¸´¡£ ´®´¦ÀíÖ¸Áî´¦Àí´æ·ÅÔÚ´æ´¢Æ÷ÀïµÄÊý¾Ý´®£¬ËùÓд®Ö¸Áî¶¼¿ÉÒÔ´¦Àí×Ö½Ú»ò×Ö¡£ÏÂÃæ£¬ÎÒÃÇ·ÖΪÁ½×éÀ´ËµÃ÷£º 1.ÓëREPÏàÅäºÏ¹¤×÷µÄMOVS£¬STOSºÍLODSÖ¸Áî (1) REPÖØ¸´´®²Ù×÷Ö±µ½(CX)=0Ϊֹ¡£ ¸ñʽ£ºREP string primitive ÆäÖÐString Primitive¿ÉΪMOVS£¬LODS»òSTOSÖ¸Áî¡£ Ö´ÐеIJÙ×÷£º 1) Èç(CX)=0ÔòÍ˳öREP£¬·ñÔòÍùÏÂÖ´ÐС£ 2) (CX)¡û(CX)-1 3) Ö´ÐÐÆäºóµÄ´®Ö¸Áî 4) ÖØ¸´(1)~(3) (2) MOVS ´®´«ËÍÖ¸Áî ¸ñʽ£º¿ÉÓÐÈýÖÖ 1)MOVS DST£¬SRC£» 2)MOVSB(×Ö½Ú)£» 3)MOVSW(×Ö) ÆäÖеڶþ¡¢ÈýÖÖ¸ñʽÃ÷È·µØ×¢Ã÷ÊÇ´«ËÍ×Ö½Ú»ò×Ö£¬µÚÒ»ÖÖ¸ñʽÔòÓ¦ÔÚ²Ù×÷ÊýÖбíÃ÷ÊÇ×Ö»¹ÊÇ×Ö½Ú²Ù×÷£¬ÀýÈ磺 MOVS ES£ºBYTE PTR[DI]£¬DS¡Ã[SI] ʵ¼ÊÉÏMOVSµÄѰַ·½Ê½ÊÇÒþº¬µÄ(ÕâÔÚÏÂÃæËùÖ´ÐеIJÙ×÷ÖпÉÒÔ¿´µ½)£¬ËùÒÔÕâÖÖ¸ñʽÖеÄDST¼°SRCÖ»Ìṩ¸ø»ã±à³ÌÐò×÷ÀàÐͼì²é£¬²¢ÇÒ²»ÔÊÐíÓÃÆäËûѰַ·½Ê½À´È·¶¨×÷Êý¡£ Ö´ÐеIJÙ×÷£º 1) ((DI))¡û((SI)) 2) ×Ö½Ú²Ù×÷£º(SI)¡û(SI)¡À1£¬(DI)¡û(DI)¡À1£»µ±·½Ïò±êÖ¾DF=0ʱÓÃ+£¬µ±·½Ïò±êÖ¾DF=1ʱÓÃ-¡£ 3) ×Ö²Ù×÷£º (SI)¡û(SI)¡À2£¬(DI)¡û(DI)¡À2£»µ±·½Ïò±êÖ¾DF=0ʱÓÃ+£¬µ±·½Ïò±ê

10

Ö¾DF=1ʱÓà - ¡£ ¸ÃÖ¸Áî²»Ó°ÏìÌõ¼þÂë¡£MOVSÖ¸Áî¿ÉÒÔ°ÑÓÉ(SI)Ö¸ÏòµÄÊý¾Ý¶ÎÖеÄÒ»¸ö×Ö(»ò×Ö½Ú)´«Ë͵½ÓÉ(DI)Ö¸ÏòµÄ¸½¼Ó¶ÎÖеÄÒ»¸ö×Ö(»ò×Ö½Ú)ÖÐÈ¥£¬Í¬Ê±¸ù¾Ý·½Ïò±êÖ¾¼°Êý¾Ý¸ñʽ(×Ö»ò×Ö½Ú)¶ÔSIºÍDI½øÐÐÐ޸ġ£µ±¸ÃÖ¸ÁîÓëǰ׺REPÁªÓÃʱ£¬Ôò¿É½«Êý¾Ý¶ÎÖеÄÕû´®Êý¾Ý´«Ë͵½¸½¼Ó¶ÎÖÐÈ¥¡£ÕâÀïÔ´´®±ØÐëÔÚÊý¾Ý¶ÎÖУ¬Ä¿µÄ´®±ØÐëÔÚ¸½¼Ó¶ÎÖУ¬µ«Ô´´®ÔÊÐíʹÓöοçԽǰ׺À´Ð޸ġ£ÔÚÓëREPÁªÓÃʱ»¹±ØÐëÏȰÑÊý¾Ý´®µÄ³¤¶ÈË͵½CX¼Ä´æÆ÷ÖУ¬ÒÔ±ã¿ØÖÆÖ¸Áî½áÊø¡£Òò´ËÔÚÖ´ÐиÃÖ¸Áîǰ£¬Ó¦¸ÃÏÈ×öºÃÒÔÏÂ×¼±¸¹¤×÷£º 1) °Ñ´æ·ÅÓÚÊý¾Ý¶ÎÖеÄÔ´´®Ê×µØÖ·(Èç·´Ïò´«ËÍÔòÓ¦ÊÇÄ©µØÖ·)·ÅÈëSI¼Ä´æÆ÷ÖУ» 2) °Ñ½«Òª´æ·ÅÊý¾Ý´®µÄ¸½¼Ó¶ÎÖеÄÄ¿µÄ´®Ê×µØÖ·(»ò·´Ïò´«ËÍʱµÄÄ©µØÖ·)·ÅÈëDI¼Ä´æÆ÷ÖУ» 3) °ÑÊý¾Ý´®³¤¶È·ÅÈëCX¼Ä´æÆ÷£» 4) ½¨Á¢·½Ïò±êÖ¾£¬ÕâÀï½éÉÜÁ½ÌõÖ¸Áî¡£ ÔÚÍê³ÉÕâЩ׼±¸¹¤×÷ºó¾Í¿ÉʹÓô®Ö¸Áî´«ËÍÐÅÏ¢ÁË¡£ ΪÁ˽¨Á¢·½Ïò±êÖ¾£¬ÕâÀï½éÉÜÁ½ÌõÖ¸Áî¡£ ¡¤CLD(Clear direction flag)¸ÃÖ¸ÁîʹDF=0£¬ÔÚÖ´Ðд®´¦ÀíÖ¸Áîʱ¿ÉʹµØÖ·×Ô¶¯ÔöÁ¿£» ¡¤STD(Set direction flag)¸ÃÖ¸ÁîʹDF=1£¬ÔÚÖ´ÐÐÖд¦ÀíÖ¸Áî¿ÉʹµØÖ·×Ô¶¯¼õÁ¿¡£ Àý4.3.15: ÔÚÊý¾Ý¶ÎÖÐÓÐÒ»¸ö×Ö·û´®£¬Æä³¤¶ÈΪ17£¬ÒªÇó°ÑËüÃÇ´«Ë͵½¸½¼Ó¶ÎÖеÄÒ»¸ö»º³åÇøÖС£±àÖÆ³ÌÐòÈçÏÂͼËùʾ¡£ÆäÖÐSEGMENT£¬ENDSΪ¶¨Òå¶ÎµÄα²Ù×÷£¬DBΪ¶¨Òå×Ö½ÚÊý¾ÝµÄα²Ù×÷¡£´æ·ÅÔÚÊý¾Ý¶ÎÖдӷûºÅµØÖ·MESSI¿ªÊ¼µÄ´æ´¢ÇøÄÚ£¬Ã¿¸ö×Ö·ûÕ¼ÓÐÒ»¸ö×Ö½Ú£»MESS2ΪĿµÄ´®£¬´æ·ÅÔÚ¸½¼Ó¶ÎÖдӷûºÅµØÖ·MESS2¿ªÊ¼¿Õ³ö17¸ö×Ö½ÚµÄ´æ´¢ÇøÄÚ¡£ºóÃæµÄ³ÌÐòÔò´æ·Å´úÂë¶ÎÖС£ DATAREA SEGMENT MESS1 DB ¡¯PERSONAL COMPUTER $¡¯ DATAREA ENDS EXTRA SEGMENT MESS2 DB 17 DUP(?) EXTRA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATAREA,ES:EXTRA START: MOV AX, DATAREA MOV DS, AX MOV AX, EXTRA MOV ES, AX LEA SI, MESS1 LEA DI, MESS2 MOV CX, 17 CLD REP MOVSB MOV AH, 4CH INT 21H CODE ENDS END START (3) STOS ´æÈë´®Ö¸Áî ¸ñʽ£º

11

1)STOS DST£» 2)STOSB(×Ö½Ú)£» 3)STOSW(×Ö) Ö´ÐеIJÙ×÷£º ×Ö½Ú²Ù×÷£º ((DI))¡û(AL)£¬(DI)¡û(DI)¡À1 ×Ö ²Ù ×÷£º ((DI))¡û(AX)£¬(DI)¡û(DI)¡À2 ¸ÃÖ¸Áî°ÑAL»òAXµÄÄÚÈÝ´æÈëÓÉ(DI)Ö¸¶¨µÄ¸½¼Ó¶ÎµÄijµ¥ÔªÖУ¬²¢¸ù¾ÝDFµÄÖµ¼°Êý¾ÝÀàÐÍÐÞ¸ÄDIµÄÄÚÈÝ¡£µ±ËüÓëREPÁªÓÃʱ£¬¿É°ÑAL»òAXµÄÄÚÈÝ´æÈëÒ»¸ö³¤¶ÈΪ(CX)µÄ»º³åÇøÖС£ÉÏÊöÓйش®´¦ÀíÖ¸ÁîµÄÌØÐÔÒ²ÊÊÓÃÓÚSTOSÖ¸Á¸ÃÖ¸ÁîÒ²²»Ó°Ïì±ê־λ¡£ (4) LODS ´Ó´®ÖÐȡָÁî ¸ñʽ£º1)LODS SRC£» 2)LODSB(×Ö½Ú)£» 3)LODSW(×Ö) Ö´ÐеIJÙ×÷£º ×Ö½Ú²Ù×÷£º((AL))¡û(SI)£¬(SI)¡û(SI)¡À1 ×Ö ²Ù ×÷£º ((AX))¡û(SI)£¬(SI)¡û(SI)¡À2 ¸ÃÖ¸Áî°ÑÓÉ(SI)Ö¸¶¨µÄÊý¾Ý¶ÎÖÐijµ¥ÔªµÄÄÚÈÝË͵½AL»òAXÖУ¬²¢¸ù¾Ý·½Ïò±êÖ¾¼°Êý¾ÝÀàÐÍÐÞ¸ÄSIµÄÄÚÈÝ¡£Ö¸ÁîÔÊÐíʹÓöοçԽǰ׺À´Ö¸¶¨·ÇÊý¾Ý¶ÎµÄ´æ´¢Çø¡£¸ÃÖ¸ÁîÒ²²»Ó°ÏìÌõ¼þÂë¡£ 2.ÓëREPE£¯REPZºÍREPNE£¯REPNZÁªºÏ¹¤×÷µÄCMPSºÍSCASÖ¸Áî (1) REPE£¯REPZ µ±ÏàµÈ/ΪÁãÊ±ÖØ¸´´®²Ù×÷ ¸ñʽ£º REPE(»òREPZ) String Primitive ÆäÖÐString Primitive¿ÉΪCMPS»òSCASÖ¸Áî¡£ Ö´ÐеIJÙ×÷£º 1) Èç(CX)=0»òZF=0(¼´Ä³´Î±È½ÏµÄ½á¹ûÁ½¸ö²Ù×÷Êý²»µÈ)ʱÍ˳ö£¬·ñÔòÍùÏÂÖ´ÐС£ 2) (CX)¡û(CX)-1£» 3) Ö´ÐÐÆäºóµÄ´®Ö¸Á 4) ÖØ¸´1)¡«3)¡£ ʵ¼ÊÉÏREPEºÍREPZÊÇÍêÈ«ÏàͬµÄ£¬Ö»ÊDZí´ïµÄ·½Ê½²»Í¬¶øÒÑ£¬ÓëREPÏà±È£¬³ýÂú×ã(CX)=0µÄÌõ¼þ¿É½áÊø²Ù×÷Í⣬»¹Ôö¼ÓÁËZF=0µÄÌõ¼þ¡£Ò²¾ÍÊÇ˵£¬Ö»ÒªÁ½ÊýÏàµÈ¾Í¿É¼ÌÐø±È½Ï£¬Èç¹ûÓöµ½Á½Êý²»ÏàµÈʱ¿ÉÌáǰ½áÊø²Ù×÷¡£ (2) REPNE£¯REPNZ µ±²»ÏàµÈ/²»ÎªÁãÊ±ÖØ¸´´®²Ù×÷ ¸ñʽ£ºREPNE(»òREPNZ) String Primitive ÆäÖÐString Primtive¿ÉΪCMPSºÍSCASÖ¸Áî¡£ Ö´ÐеIJÙ×÷£º³ýÍ˳öÌõ¼þΪ(CX)=0»òZF=1Í⣬ÆäËû²Ù×÷ÓëREPEÍêÈ«Ïàͬ¡£Ò²¾ÍÊÇ˵£¬Ö»ÒªÁ½Êý±È½Ï²»ÏàµÈ£¬¾Í¿É¼ÌÐøÖ´Ðд®´¦ÀíÖ¸ÁÈçij´ÎÁ½Êý±È½ÏÏàµÈ»ò(CX)=0ʱ£¬¾Í¿É½áÊø²Ù×÷¡£ (3) CMPS ´®±È½ÏÖ¸Áî ¸ñʽ£º 1)CMPS SRC£¬DST£» 2)CMPSB(×Ö½Ú)£» 3)CMPSW(×Ö) Ö´ÐеIJÙ×÷£º 1) ((SI))-((DI)) 2) ×Ö½Ú²Ù×÷£º((SI))¡û(SI)¡À1£¬(SI)¡û(DI)¡À1 ×Ö²Ù×÷£º ((SI))¡û(SI)¡À2£¬(SI)¡û(DI)¡À2 Ö¸Áî°ÑÓÉ(SI)Ö¸ÏòµÄÊý¾Ý¶ÎÖеÄÒ»¸ö×Ö(»ò×Ö½Ú)ÓÉ(DI)Ö¸ÏòµÄ¸½¼Ó¶ÎÖеÄÒ»¸ö×Ö(»ò×Ö½Ú)Ïà¼õ£¬µ«²»±£´æ½á¹û£¬Ö»¸ù¾Ý½á¹ûÖÃÌõ¼þÂ룬ָÁîµÄÆäËûÌØÐÔºÍMOVSÖ¸ÁîµÄ¹æ¶¨Ïàͬ¡£ (4) SCAS ´®É¨ÃèÖ¸Áî

12

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)