¡¶Î¢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ¡·£¨µÚ¶þ°æ£©¹¨Éи£-Ï°Ìâ½âÎöºÍʵÑéÖ¸µ¼ ÏÂÔر¾ÎÄ

2.2 8086΢´¦ÀíÆ÷ÓÉÄļ¸²¿·Ö×é³É£¿¸÷²¿·ÖµÄ¹¦ÄÜÊÇʲô£¿ ¡¾½â¡¿£º°´¹¦ÄÜ¿É·ÖΪÁ½²¿·Ö£º×ÜÏß½Ó¿Úµ¥ÔªBIU£¨Bus Interface Unit£©ºÍÖ´Ðе¥ÔªEU£¨Execution Unit£©¡£

×ÜÏß½Ó¿Úµ¥ÔªBIUÊÇ8086 CPUÔÚ´æ´¢Æ÷ºÍI/OÉ豸֮¼äµÄ½Ó¿Ú²¿¼þ£¬¸ºÔð¶ÔÈ«²¿Òý½ÅµÄ²Ù×÷£¬¼´8086¶Ô´æ´¢Æ÷ºÍI/OÉ豸µÄËùÓвÙ×÷¶¼ÊÇÓÉBIUÍê³ÉµÄ¡£ËùÓжÔÍⲿ×ÜÏߵIJÙ×÷¶¼±ØÐëÓÐÕýÈ·µÄµØÖ·ºÍÊʵ±µÄ¿ØÖÆÐźţ¬BIUÖеĸ÷²¿¼þÖ÷ÒªÊÇΧÈÆÕâ¸öÄ¿±êÉè¼ÆµÄ¡£ËüÌṩÁË16λ˫ÏòÊý¾Ý×ÜÏß¡¢20λµØÖ·×ÜÏߺÍÈô¸ÉÌõ¿ØÖÆ×ÜÏß¡£

Æä¾ßÌåÈÎÎñÊÇ£º¸ºÔð´ÓÄÚ´æµ¥ÔªÖÐԤȡָÁ²¢½«ËüÃÇË͵½Ö¸Áî¶ÓÁлº³åÆ÷ÔÝ´æ¡£CPUÖ´ÐÐÖ¸Áîʱ£¬×ÜÏß½Ó¿Úµ¥ÔªÒªÅäºÏÖ´Ðе¥Ôª£¬´ÓÖ¸¶¨µÄÄÚ´æµ¥Ôª»òI/O¶Ë¿ÚÖÐÈ¡³öÊý¾Ý´«Ë͸øÖ´Ðе¥Ôª£¬»òÕß°ÑÖ´Ðе¥ÔªµÄ´¦Àí½á¹û´«Ë͵½Ö¸¶¨µÄÄÚ´æµ¥Ôª»òI/O¶Ë¿ÚÖС£

Ö´Ðе¥ÔªEUÖаüº¬1¸ö16λµÄÔËËãÆ÷ALU¡¢8¸ö16λµÄ¼Ä´æÆ÷¡¢1¸ö16λ±êÖ¾¼Ä´æÆ÷FR¡¢1¸öÔËËãÔÝ´æÆ÷ºÍÖ´Ðе¥ÔªµÄ¿ØÖƵç·¡£Õâ¸öµ¥Ôª½øÐÐËùÓÐÖ¸ÁîµÄ½âÊͺÍÖ´ÐУ¬Í¬Ê±¹ÜÀíÉÏÊöÓйصļĴæÆ÷¡£EU¶ÔÖ¸ÁîµÄÖ´ÐÐÊÇ´ÓÈ¡Ö¸Áî²Ù×÷Â뿪ʼµÄ£¬Ëü´Ó×ÜÏß½Ó¿Úµ¥ÔªµÄÖ¸Áî¶ÓÁлº³åÆ÷ÖÐÿ´ÎÈ¡Ò»¸ö×Ö½Ú¡£Èç¹ûÖ¸Áî¶ÓÁлº³åÆ÷ÖÐÊǿյģ¬ÄÇôEU¾ÍÒªµÈ´ýBIUͨ¹ýÍⲿ×ÜÏß´Ó´æ´¢Æ÷ÖÐÈ¡µÃÖ¸Áî²¢Ë͵½EU£¬Í¨¹ýÒëÂëµç··ÖÎö£¬·¢³öÏàÓ¦¿ØÖÆÃüÁ¿ØÖÆALUÊý¾Ý×ÜÏßÖÐÊý¾ÝµÄÁ÷Ïò¡£

2.3 ¼òÊö8086 CPUµÄ¼Ä´æÆ÷×éÖ¯¡£ ¡¾½â¡¿£º£¨1£©Í¨ÓüĴæÆ÷£ºÍ¨ÓüĴæÆ÷ÓÖ³ÆÊý¾Ý¼Ä´æÆ÷£¬¼È¿É×÷Ϊ16λÊý¾Ý¼Ä´æÆ÷ʹÓã¬Ò²¿É×÷ΪÁ½¸ö8λÊý¾Ý¼Ä´æÆ÷ʹÓᣵ±ÓÃ×÷16λʱ£¬³ÆΪAX¡¢BX¡¢CX¡¢DX¡£µ±ÓÃ×÷8λʱ£¬AH¡¢BH¡¢CH¡¢DH´æ·Å¸ß×Ö½Ú£¬AL¡¢BL¡¢CL¡¢DL´æ·ÅµÍ×Ö½Ú£¬²¢ÇҿɶÀÁ¢Ñ°Ö·¡£ÕâÑù£¬4¸ö16λ¼Ä´æÆ÷¾Í¿Éµ±×÷8¸ö8λ¼Ä´æÆ÷À´Ê¹Óá£

£¨2£©¶Î¼Ä´æÆ÷£º¶Î¼Ä´æÆ÷¹²ÓÐ4¸öCS¡¢DS¡¢SS¡¢ES¡£´úÂë¶Î¼Ä´æÆ÷CS±íʾµ±Ç°Ê¹ÓõÄÖ¸Áî´úÂë¿ÉÒԴӸöμĴæÆ÷Ö¸¶¨µÄ´æ´¢Æ÷¶ÎÖÐÈ¡µÃ£¬ÏàÓ¦µÄÆ«ÒÆÖµÔòÓÉIPÌṩ£»¶ÑÕ»¶Î¼Ä´æÆ÷SSÖ¸¶¨µ±Ç°¶ÑÕ»µÄÆðʼµØÖ·£»Êý¾Ý¶Î¼Ä´æÆ÷DSָʾµ±Ç°³ÌÐòʹÓõÄÊý¾ÝËù´æ·Å¶ÎµÄÆðʼµØÖ·£»¸½¼Ó¶Î¼Ä´æÆ÷ESÔòÖ¸³öµ±Ç°³ÌÐòʹÓø½¼Ó¶ÎµØÖ·µÄÆðʼλÖ㬸öÎÒ»°ãÓÃÀ´´æ·ÅԭʼÊý¾Ý»òÔËËã½á¹û¡£

£¨3£©Ö¸ÕëºÍ±äÖ·¼Ä´æÆ÷£º¶ÑÕ»Ö¸ÕëSPÓÃÒÔÖ¸³öÔÚ¶ÑÕ»¶ÎÖе±Ç°Õ»¶¥µÄµØÖ·¡£ÈëÕ»£¨PUSH£©ºÍ³öÕ»£¨POP£©Ö¸ÁîÓÉSP¸ø³öÕ»¶¥µÄÆ«ÒƵØÖ·¡£»ùÖ·Ö¸ÕëBPÖ¸³öÒª´¦ÀíµÄÊý¾ÝÔÚ¶ÑÕ»¶ÎÖеĻùµØÖ·£¬¹Ê³ÆΪ»ùÖ·Ö¸Õë¼Ä´æÆ÷¡£±äÖ·¼Ä´æÆ÷SIºÍDIÓÃÀ´´æ·Åµ±Ç°Êý¾Ý¶ÎÖÐij¸öµ¥ÔªµÄÆ«ÒÆÁ¿¡£

£¨4£©Ö¸ÁîÖ¸ÕëÓë±êÖ¾¼Ä´æÆ÷£ºÖ¸ÁîÖ¸ÕëIPµÄ¹¦ÄܸúZ80 CPUÖеijÌÐò¼ÆÊýÆ÷PCµÄ¹¦ÄÜÀàËÆ¡£Õý³£ÔËÐÐʱ£¬IPÖдæ·ÅµÄÊÇBIUҪȡµÄÏÂÒ»ÌõÖ¸ÁîµÄÆ«ÒƵØÖ·¡£Ëü¾ßÓÐ×Ô¶¯¼Ó1¹¦ÄÜ£¬Ã¿µ±Ö´ÐÐÒ»´ÎÈ¡Ö¸Áî²Ù×÷ʱ£¬Ëü½«×Ô¶¯¼Ó1£¬Ê¹ËüÖ¸ÏòҪȡµÄÏÂÒ»ÄÚ´æµ¥Ôª£¬Ã¿È¡Ò»¸ö×Ö½ÚºóIPÄÚÈݼÓ1£¬¶øÈ¡Ò»¸ö×ÖºóIPÄÚÈÝÔò¼Ó2¡£Ä³Ð©Ö¸Áî¿ÉʹIPÖµ¸Ä±ä£¬Ä³Ð©Ö¸Á¿ÉʹIPֵѹÈë¶ÑÕ»»ò´Ó¶ÑÕ»Öе¯³ö¡£±êÖ¾¼Ä´æÆ÷FLAGSÊÇ16λµÄ¼Ä´æÆ÷£¬8086¹²Ê¹ÓÃÁË9¸öÓÐЧ룬±êÖ¾¼Ä´æÆ÷¸ñʽÈçͼ2.5Ëùʾ¡£ÆäÖеÄ6λÊÇ״̬±ê־룬3λΪ¿ØÖƱê־λ¡£×´Ì¬±ê־λÊǵ±Ò»Ð©Ö¸ÁîÖ´Ðк󣬱íÕ÷Ëù²úÉúÊý¾ÝµÄһЩÌØÕ÷¡£¶ø¿ØÖƱê־λÔò¿ÉÒÔÓɳÌÐòдÈ룬ÒÔ´ïµ½¿ØÖÆ´¦Àí»ú״̬»ò³ÌÐòÖ´Ðз½Ê½µÄ±íÕ÷¡£

2.4 ÊÔÊö8086 CPU±êÖ¾¼Ä´æÆ÷¸÷λµÄº¬ÒåÓë×÷Óᣠ¡¾½â¡¿£º(1) 6¸ö״̬±ê־λµÄ¹¦ÄÜ·Ö±ðÐðÊöÈçÏ£º

CF(Carry Flag)¡ª¡ª½øλ±ê־λ¡£µ±Ö´ÐÐÒ»¸ö¼Ó·¨(»ò¼õ·¨)ÔËË㣬ʹ×î¸ßλ²úÉú½øλ(»ò½èλ)ʱ£¬CFΪ1£»·ñÔòΪ0¡£

PF(Parity Flag)¡ª¡ªÆæż±ê־λ¡£¸Ã±ê־λ·´Ó³ÔËËã½á¹ûÖÐ1µÄ¸öÊýÊÇżÊý»¹ÊÇÆæÊý¡£µ±Ö¸ÁîÖ´Ðнá¹ûµÄµÍ8λÖк¬ÓÐżÊý¸ö1ʱ£¬PF=1£»·ñÔòPF=0¡£

AF(Auxiliary carry Flag)¡ª¡ª¸¨Öú½øλ±ê־λ¡£µ±Ö´ÐÐÒ»¸ö¼Ó·¨(»ò¼õ·¨)ÔËË㣬ʹ½á¹ûµÄµÍ4λÏò¸ß4λÓнøλ(»ò½èλ)ʱ£¬AF=1£»·ñÔòAF=0¡£

ZF(Zero Flag)¡ª¡ªÁã±ê־λ¡£Èôµ±Ç°µÄÔËËã½á¹ûΪÁ㣬ZF=1£»·ñÔòZF=0¡£ SF(Sign Flag)¡ª¡ª·ûºÅ±ê־λ¡£ËüºÍÔËËã½á¹ûµÄ×î¸ßλÏàͬ¡£

OF(Overflow Flag)¡ª¡ªÒç³ö±ê־λ¡£µ±²¹ÂëÔËËãÓÐÒç³öʱ£¬OF=1£»·ñÔòOF=0¡£ (2) 3¸ö¿ØÖƱê־λÓÃÀ´¿ØÖÆCPUµÄ²Ù×÷£¬ÓÉÖ¸Áî½øÐÐÖÃλºÍ¸´Î»¡£

DF(Direction Flag)¡ª¡ª·½Ïò±ê־λ¡£ËüÓÃÒÔÖ¸¶¨×Ö·û´®´¦ÀíʱµÄ·½Ïò£¬µ±¸ÃλÖá°1¡±Ê±£¬×Ö·û´®ÒԵݼõ˳Ðò´¦Àí£¬¼´µØÖ·ÒԴӸߵ½µÍ˳ÐòµÝ¼õ¡£·´Ö®£¬ÔòÒÔµÝÔö˳Ðò´¦Àí¡£

IF(Interrupt enable Flag)¡ª¡ªÖжÏÔÊÐí±ê־λ¡£ËüÓÃÀ´¿ØÖÆ8086ÊÇ·ñÔÊÐí½ÓÊÕÍⲿÖжÏÇëÇó¡£ÈôIF=1£¬8086ÄÜÏìÓ¦ÍⲿÖжϣ¬·´Ö®Ôò²»ÏìÓ¦ÍⲿÖжϡ£

×¢Ò⣺IFµÄ״̬²»Ó°Ïì·ÇÆÁ±ÎÖжÏÇëÇó(NMI)ºÍCPUÄÚ²¿ÖжÏÇëÇó¡£

TF(Trap Flag)¡ª¡ª¸ú×Ù±ê־λ¡£ËüÊÇΪµ÷ÊÔ³ÌÐò¶øÉ趨µÄÏÝÚå¿ØÖÆλ¡£µ±¸ÃλÖá°1¡±Ê±£¬8086 CPU´¦ÓÚµ¥²½×´Ì¬£¬´ËʱCPUÿִÐÐÍêÒ»ÌõÖ¸Áî¾Í×Ô¶¯²úÉúÒ»´ÎÄÚ²¿Öжϡ£µ±¸Ãλ¸´Î»ºó£¬CPU»Ö¸´Õý³£¹¤×÷¡£

2.5 8086ÖУ¬´æ´¢Æ÷Ϊʲô²ÉÓ÷ֶιÜÀí£¿ ¡¾½â¡¿£º8086/8088µÄµØÖ·×ÜÏß¿í¶ÈΪ20룬Æä×î´óÑ°Ö·¿Õ¼äÊÇ1 MB¡£¶øÆäËû΢´¦ÀíÆ÷ÔòÔÚʵģʽÏÂÖ»ÄÜ·ÃÎÊÇ°1 MBµÄ´æ´¢Æ÷µØÖ·¡£Êµ¼ÊÉÏ£¬ÊµÄ£Ê½¾ÍÊÇΪ8086/8088¶øÉè¼ÆµÄ¹¤×÷·½Ê½£¬ËüÒª½â¾öÔÚ16λ×Ö³¤µÄ»úÆ÷ÀïÔõôÌṩ20λµØÖ·µÄÎÊÌ⣬¶ø½â¾öµÄ°ì·¨ÊDzÉÓô洢Æ÷µØÖ··Ö¶ÎµÄ·½·¨¡£³ÌÐòÔ±ÔÚ±àÖƳÌÐòʱҪ°Ñ´æ´¢Æ÷»®·Ö³É¶Î£¬ÔÚÿ¸ö¶ÎÄÚµØÖ·¿Õ¼äÊÇÏßÐÔÔö³¤µÄ¡£Ã¿¸ö¶ÎµÄ´óС¿É´ï64 KB£¬ÕâÑù¶ÎÄÚµØÖ·¿ÉÒÔÓÃ16λ±íʾ¡£´æ´¢Æ÷·Ö¶ÎµÄ·½·¨ËäÈ»¸ø³ÌÐòÉè¼Æ´øÀ´Ò»¶¨µÄÂé·³£¬µ«ÕâÖÖ·½·¨¿ÉÒÔÀ©´ó´æ´¢¿Õ¼ä£¬¶øÇÒ¶ÔÓÚ³ÌÐòµÄÔÙ¶¨Î»Ò²ÊǺܷ½±ãµÄ¡£

2.6 ʲôÊÇÂß¼­µØÖ·£¿Ê²Ã´ÊÇÎïÀíµØÖ·£¿ÈçºÎÓÉÂß¼­µØÖ·¼ÆËãÎïÀíµØÖ·£¿ ¡¾½â¡¿£ºÎïÀíµØÖ·£ºÍê³É´æ´¢Æ÷µ¥Ôª»òI/O¶Ë¿ÚÑ°Ö·µÄʵ¼ÊµØÖ·³ÉΪÎïÀíµØÖ·£¬CPUÐͺŲ»Í¬ÆäÎïÀíµØÖ·Ò²²»Í¬¡£ÎïÀíµØÖ·ÊÇÖ¸CPUºÍ´æ´¢Æ÷½øÐÐÊý¾Ý½»»»Ê±Êµ¼ÊËùʹÓõĵØÖ·£¬¶øÂß¼­µØÖ·ÊdzÌÐòʹÓõĵØÖ·¡£ÎïÀíµØÖ·ÓÉÁ½²¿·Ö×é³É£º¶Î»ùÖ·(¶ÎÆðʼµØÖ·¸ß16λ)ºÍÆ«ÒƵØÖ·¡£Ç°ÕßÓɶμĴæÆ÷¸ø³ö£¬ºóÕßÊÇÖ¸´æ´¢µ¥ÔªËùÔÚµÄλÖÃÀë¶ÎÆðʼµØÖ·µÄÆ«ÒƾàÀë¡£µ±CPUѰַij¸ö´æ´¢µ¥ÔªÊ±£¬ÏȽ«¶Î¼Ä´æÆ÷µÄÄÚÈÝ×óÒÆ4λ£¬È»ºó¼ÓÉÏÖ¸ÁîÖÐÌṩµÄ16λƫÒƵØÖ·¶øÐγÉ20λÎïÀíµØÖ·¡£ÔÚÈ¡Ö¸Áîʱ£¬CPU×Ô¶¯Ñ¡Ôñ´úÂë¶Î¼Ä´æÆ÷CS£¬×óÒÆ4λºó£¬¼ÓÉÏÖ¸ÁîÌṩµÄ16λƫÒƵØÖ·£¬¼ÆËã³öҪȡָÁîµÄÎïÀíµØÖ·¡£¶ÑÕ»²Ù×÷ʱ£¬CPU×Ô¶¯Ñ¡Ôñ¶ÑÕ»¶Î¼Ä´æÆ÷SS£¬½«ÆäÄÚÈÝ×óÒÆ4λºó£¬¼ÓÉÏÖ¸ÁîÌṩµÄ16λƫÒƵØÖ·£¬¼ÆËã³öÕ»¶¥µ¥ÔªµÄÎïÀíµØÖ·¡£Ã¿µ±´æÈ¡²Ù×÷Êýʱ£¬CPU»á×Ô¶¯Ñ¡ÔñÊý¾Ý¶Î¼Ä´æÆ÷(»ò¸½¼Ó¶Î¼Ä´æÆ÷ES)£¬½«¶Î»ùÖµ×óÒÆ4λºó¼ÓÉÏ16λƫÒƵØÖ·£¬µÃµ½²Ù×÷ÊýÔÚÄÚ´æµÄÎïÀíµØÖ·¡£

2.9 ÔÚ80x86΢»úµÄÊäÈë/Êä³öÖ¸ÁîÖУ¬I/O¶ËºÅͨ³£ÊÇÓÉDX¼Ä´æÆ÷ÌṩµÄ£¬µ«ÓÐʱҲ¿ÉÒÔÔÚÖ¸ÁîÖÐÖ±½ÓÖ¸¶¨00H¡«0FFHµÄ¶Ë¿ÚºÅ¡£ÊÔÎÊ¿ÉÖ±½ÓÓÉÖ¸ÁîÖ¸¶¨µÄI/O¶Ë¿ÚÊýÊǶàÉÙ£¿ ¡¾½â¡¿£ºÓÉÓÚÔÚ80x86µÄÊäÈë/Êä³öÖ¸ÁîÖУ¬¿ÉÒÔÖ±½ÓÔÚ00H~0FFHÖ¸¶¨£¬ËùÒÔÖ±½ÓÓÉÖ¸ÁîÖ¸¶¨µÄI/O¶Ë¿ÚÊýÊÇ256¡£

3.1 Ö¸Áî·Ö³É¼¸²¿·Ö£¿Ã¿²¿·ÖµÄ×÷ÓÃÊÇʲô£¿ ¡¾½â¡¿£ºÃ¿ÌõÖ¸ÁîÓÉÁ½²¿·Ö×é³É£º²Ù×÷Âë×ֶκ͵ØÖ·Âë×ֶΡ£²Ù×÷Âë×ֶΣºÓÃÀ´ËµÃ÷¸ÃÖ¸ÁîËùÒªÍê³ÉµÄ²Ù×÷¡£

µØÖ·Âë×ֶΣºÓÃÀ´ÃèÊö¸ÃÖ¸ÁîµÄ²Ù×÷¶ÔÏó¡£Ò»°ãÊÇÖ±½Ó¸ø³ö²Ù×÷Êý£¬»òÕ߸ø³ö²Ù×÷Êý´æ

·ÅµÄ¼Ä´æÆ÷±àºÅ£¬»òÕ߸ø³ö²Ù×÷Êý´æ·ÅµÄ´æ´¢µ¥ÔªµÄµØÖ·»òÓйصØÖ·µÄÐÅÏ¢¡£

3.2 Ö¸³öÏÂÁÐMOVÖ¸ÁîµÄÔ´²Ù×÷ÊýµÄÑ°Ö··½Ê½£º MOV AX£¬1234H MOV AX£¬BX MOV AX£¬[BX]

MOV AX£¬TABLE£»TABLE £»TABLEÊÇÒ»¸ö±äÁ¿Ãû MOV AX£¬[1234H] MOV AX£¬[BX+1234H] MOV AX£¬[BP][SI]

MOV AX£¬[BX+SI-1234H] ¡¾½â¡¿£ºMOV AX£¬1234H Á¢¼´Ñ°Ö·

MOV AX£¬BX ¼Ä´æÆ÷Ñ°Ö· MOV AX£¬[BX] ¼Ä´æÆ÷¼ä½ÓÑ°Ö· MOV AX£¬TABLE £»TABLEÊÇÒ»¸ö±äÁ¿Ãû Ö±½ÓÑ°Ö··½Ê½ MOV AX£¬[1234H] Ö±½ÓÑ°Ö··½Ê½ MOV AX£¬[BX+1234H] ¼Ä´æÆ÷Ïà¶ÔÑ°Ö· MOV AX£¬[BP][SI] »ùÖ·±äÖ·Ñ°Ö· MOV AX£¬[BX+SI£­1234H] Ïà¶ÔµØÖ·±äÖ·Ñ°Ö· 3.3 É裺£¨DS£©=2000H£¬£¨BX£©=0100H£¬£¨SS£©=1000H£¬£¨BP£©=0010H£¬TABLEµÄÎïÀíµØַΪ2000AH£¬£¨SI£©=0002H¡£ÇóÏÂÁÐÿÌõÖ¸ÁîÔ´²Ù×÷ÊýµÄ´æ´¢µ¥ÔªµØÖ·£º

MOV AX£¬[1234H] MOV AX£¬[BX]

MOV AX£¬TABLE[BX] MOV AX£¬[BP]

MOV AX£¬[BP][SI] ¡¾½â¡¿£º ´æ´¢µ¥ÔªµØÖ·£º(DS)¡Á10H + EA =2000H¡Á10H+1234H=21234H

´æ´¢µ¥ÔªµØÖ·£º(DS)¡Á10H +(BX)=2000H¡Á10H+0100H=20100H ´æ´¢µ¥ÔªµØÖ·£º(DS)¡Á10H+EA=2000H¡Á10H+0100H+000AH=2010AH ´æ´¢µ¥ÔªµØÖ·£º(SS)¡Á10H+EA=1000H¡Á10H+0010H=10010H

´¢µ¥ÔªµØÖ·£º(SS)¡Á10H+EA=1000H¡Á10H+0010H+0002H =10012H

3.4 ÉèARRAYÊÇ×ÖÊý×éµÄÊ×µØÖ·£¬Ð´³ö½«µÚ5¸ö×ÖÔªËØÈ¡³öËÍAX¼Ä´æÆ÷µÄÖ¸ÁҪÇóʹÓÃÒÔϼ¸ÖÖÑ°Ö··½Ê½£º

¢Å Ö±½ÓÑ°Ö· ¢Æ ¼Ä´æÆ÷¼ä½ÓÑ°Ö· ¢Ç ¼Ä´æÆ÷Ïà¶ÔÑ°Ö· ¢È »ùÖ·±äÖ·Ñ°Ö· ¡¾½â¡¿£º£¨1£©Ö±½ÓÑ°Ö·£¨2£©¼Ä´æÆ÷¼ä½ÓÑ°Ö·£¨3£©¼Ä´æÆ÷Ïà¶ÔÑ°Ö·£¨4£©»ùÖ·±äÖ·Ñ°Ö· MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8

MOV AX£¬[BX+SI]

3.7 É赱ǰ£¨CS£©=2000H£¬£¨IP£©=2000H£¬±êºÅNEXT¶¨ÒåÔÚµ±Ç°´úÂë¶ÎÆ«ÒƵØÖ·ÊÇ0100H´¦£¬£¨DS£©=1000H£¬£¨BX£©=1000H£¬£¨11000H£©=00H£¬£¨11001H£©=30H£¬Êý¾Ý¶Î¶¨ÒåµÄ×Ö±äÁ¿ARRAYµÄÄÚÈÝΪ1000H£¬ÊÔд³öÏÂÁÐתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØÖ·

¢Å JMP NEAR PTR ¢Æ JMP BX

¢Ç JMP WORD PTR ARRAY ¡¾½â¡¿£º¢Å JMP NEAR PTR ´ËתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØַΪ£º20100H

¢Æ JMP BX ´ËתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØַΪ£º21000H ¢Ç JMP WORD PTR ARRAY ´ËתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØַΪ£º23000H 3.8 É赱ǰ£¨CS£©=2000H£¬£¨IP£©=2000H£¬±êºÅNEXT¶¨ÒåÔÚ3000H£º1000H´¦¡£µ±Ç°£¨DS£©=1000H£¬£¨BX£©=1000H£¬£¨11000H£©=00H£¬£¨11001H£©=03H£¬£¨11002H£©=00H£¬£¨11003H£©=30H£¬Êý¾Ý¶Î¶¨ÒåµÄ×Ö±äÁ¿ARRAYµÄÄÚÈÝΪ0300H£¬£¨ARRAY+2£©=3000H£¬ÊÔд³öÏÂÁÐתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØÖ·£º

¢Å JMP FAR PTR NEXT ¢Æ JMP DWORD ARRAY ¡¾½â¡¿£º¢Å JMP FAR PTR NEXT ´ËתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØַΪ£º31000H

¢Æ JMP DWORD ARRAY ´ËתÒÆÖ¸ÁîµÄÄ¿±êתÒƵØַΪ£º30300H 3.9 ÏÂÁÐÿ×éÖ¸ÁîÓкÎÇø±ð£¿

(1) MOV AX£¬1234H MOV AX£¬[1234H] (2) MOV AX£¬TABLE MOV AX£¬[TABLE] (3) MOV AX£¬TABLE LEA AX£¬TALBE (4) MOV AX£¬BX MOV AX£¬[BX] ¡¾½â¡¿£º(1) MOV AX£¬1234H ½«Á¢¼´Êý1234HË͵½¼Ä´æÆ÷AXÖÐ

MOV AX£¬[1234H] ½«´æ´¢Çø[1234H]ÖеÄÄÚÈÝË͵½¼Ä´æÆ÷AXÖÐ

(2) MOV AX£¬TABLE ½«±êºÅTABLEµÄµØÖ·Ë͵½¼Ä´æÆ÷AXÖÐ

MOV AX£¬[TABLE] ½«´æ´¢Çø[TABLE] ÖеÄÄÚÈÝË͵½¼Ä´æÆ÷AXÖÐ (3) MOV AX£¬TABLE ½«±êºÅTABLEµÄµØÖ·Ë͵½¼Ä´æÆ÷AXÖÐ

LEA AX£¬TALBE ½«±êºÅTABLEµÄµØÖ·Ë͵½¼Ä´æÆ÷AXÖÐ (4) MOV AX£¬BX ¼Ä´æÆ÷Ñ°Ö·

MOV AX£¬[BX] ¼Ä´æÆ÷¼ä½ÓÑ°Ö·

3.10 MOV CS£¬AXÖ¸ÁîÕýÈ·Â𣿠¡¾½â¡¿£ºMOV CS£¬AXÖ¸Áî²»ÕýÈ·¡£ÒòΪCSÊÇÖ¸Áî¼Ä´æÆ÷£¬ÓÉϵͳ×Ô¶¯¸Ä±ä£¬²»ÄÜÓÉÖ¸Áî½øÐиü¸Ä¡£

3.11 дһָÁîÐòÁУ¬½«3456H×°ÈëDS¼Ä´æÆ÷¡£ ¡¾½â¡¿£ºMOV AX, 3456H

MOV DS, AX

3.14 ÈôÕýÔÚ·ÃÎʶÑÕ»ÖÐ03600Hµ¥Ôª£¬ÔòSSºÍSPµÄÖµÊǶàÉÙ£¿ ¡¾½â¡¿£ºÈôÕýÔÚ·ÃÎʶÑÕ»ÖÐ03600Hµ¥Ôª£¬ÔòSSºÍSPµÄÖµ»áÓкöà×éºÏ£¬ÆäÖпÉÒÔÓÐSSÊÇ0300H£¬SPÊÇ0600H¡£ 3.15 Èô£¨SS£©=2000H£¬£¨SP£©=000AH£¬ÏÈÖ´Ðн«×ÖÊý¾Ý1234HºÍ5678HѹÈë¶ÑÕ»µÄ²Ù×÷£¬ÔÙÖ´Ðе¯³öÒ»¸ö×ÖÊý¾ÝµÄ²Ù×÷£¬ÊÔ»­³ö¶ÑÕ»Çø¼°SPµÄÄÚÈݱ仯¹ý³ÌʾÒâͼ£¨±ê³ö´æ´¢µ¥ÔªµÄÎïÀíµØÖ·£©¡£ ¡¾½â¡¿£ºÎïÀíµØÖ·£½(SS)¡Á10H£«SP

SP¡ú20006H 78H

20007H 56H SP¡ú20008H 34H 20008H 34H SP¡ú2000AH 20009H 12H 20009H 12H 2000AH 2000AH

3.16 ½âÊÍXLATÖ¸ÁîÊÇÔõÑùת»»AL¼Ä´æÆ÷ÖеÄÄÚÈݵġ£²¢±àдһ¶Î³ÌÐòÓÃXLATÖ¸ÁBCDÂë0¡«9ת»»³É¶ÔÓ¦µÄASCIIÂ룬²¢½«ASCIIÂë´æÈëÊý¾ÝARRAYÖС£