CH01 ΢ÐͼÆËã»ú¸ÅÊö ϰÌâÓë˼¿¼Ìâ
1£® ΢ÐͼÆËã»úÓÉÄÄЩ²¿¼þ×é³É£¿¸÷²¿¼þµÄÖ÷Òª¹¦ÄÜÊÇʲô£¿ ½â´ð£º ΢»úϵͳ ΢ÐͼÆËã»ú ϵͳÈí¼þ
ÍâΧÉ豸£º´òÓ¡»ú¡¢¼üÅÌ¡¢CRT¡¢´ÅÅÌ¿ØÖÆÆ÷µÈ ΢´¦ÀíÆ÷ £¨CPU£©
ϵͳ×ÜÏߣºAB¡¢CB¡¢DB
£¨¹¦ÄÜ£ºÎªCPUºÍÆäËû²¿¼þÖ®¼äÌṩÊý¾Ý¡¢µØÖ· ºÍ¿ØÖÆÐÅÏ¢µÄ´«ÊäͨµÀ£©
´æ´¢Æ÷£ºÖ»¶Á´æ´¢Æ÷£¨ROM£©¡¢Ëæ»ú´æ´¢Æ÷£¨RAM£© £¨¹¦ÄÜ£ºÓÃÀ´´æ´¢ÐÅÏ¢£©
ÊäÈë/Êä³ö£¨I/O£©½Ó¿Ú£º´®/²¢ÐÐ½Ó¿ÚµÈ £¨¹¦ÄÜ£ºÊ¹ÍⲿÉ豸ºÍ΢ÐÍ»úÏàÁ¬£© ËãÊõÂß¼²¿¼þ(ALU£© ÀÛ¼ÓÆ÷¡¢¼Ä´æÆ÷ ¿ØÖÆÆ÷
²Ù×÷ϵͳ£¨OS£©
ϵͳʵÓóÌÐò£º»ã±à¡¢±àÒë¡¢±à¼¡¢µ÷ÊÔ³ÌÐòµÈ
£¨×¢£ºCPUµÄ¹¦ÄÜ££¢Ù¿ÉÒÔ½øÐÐËãÊõºÍÂß¼ÔËË㣻 ¢Ú¿É±£´æÉÙÁ¿Êý¾Ý£»
¢ÛÄܶÔÖ¸Áî½øÐÐÒëÂë²¢Ö´Ðй涨µÄ¶¯×÷£» ¢ÜÄܺʹ洢Æ÷¡¢ÍâÉè½»»»Êý¾Ý£» ¢ÝÌṩÕûÐÞϵͳËùÐèÒªµÄ¶¨Ê±ºÍ¿ØÖÆ£» ¢Þ¿ÉÒÔÏìÓ¦ÆäËû²¿¼þ·¢À´µÄÖжÏÇëʾ¡££©
2£® 8086/8088 CPU ÓÉÄÄÁ½²¿·Ö×é³É£¿ËüÃǵÄÖ÷Òª¹¦Äܸ÷ÊÇʲô£¿ÊÇÈçºÎе÷¹¤×÷µÄ£¿ ½â´ð£º ΢´¦ÀíÆ÷ £¨CPU£©
×ÜÏß½Ó¿Ú²¿¼þ(BIU£©£º¸ºÔðÓë´æ´¢Æ÷¡¢I/O¶Ë¿Ú´«ËÍÊý¾Ý Ö´Ðв¿¼þ£¨EU£©£º¸ºÔðÖ¸ÁîµÄÖ´ÐРе÷¹¤×÷¹ý³Ì£º
×ÜÏß½Ó¿Ú²¿¼þºÍÖ´Ðв¿¼þ²¢²»ÊÇͬ²½¹¤×÷µÄ£¬ËüÃǰ´ÒÔÏÂÁ÷Ë®Ïß¼¼ÊõÔÔòÀ´Ðµ÷¹ÜÀí£º
¢Ù ÿµ±8086 µÄÖ¸Áî¶ÓÁÐÖÐÓÐÁ½¸ö¿Õ×Ö½Ú£¬»òÕß8088 µÄÖ¸Áî¶ÓÁÐÖÐÓÐÒ»¸ö¿Õ×Ö½Úʱ£¬
×ÜÏß½Ó¿Ú²¿¼þ¾Í»á×Ô¶¯°ÑÖ¸ÁîÈ¡µ½Ö¸Áî¶ÓÁÐÖС£
¢Ú ÿµ±Ö´Ðв¿¼þ×¼±¸Ö´ÐÐÒ»ÌõÖ¸Áîʱ£¬Ëü»á´Ó×ÜÏß½Ó¿Ú²¿¼þµÄÖ¸Áî¶ÓÁÐǰ²¿È¡³öÖ¸Áî
µÄ´úÂ룬ȻºóÓü¸¸öʱÖÓÖÜÆÚÈ¥Ö´ÐÐÖ¸Áî¡£ÔÚÖ´ÐÐÖ¸ÁîµÄ¹ý³ÌÖУ¬Èç¹û±ØÐë·Ã
ÎÊ´æ´¢Æ÷»òÕß
ÊäÈë/Êä³öÉ豸£¬ÄÇô£¬Ö´Ðв¿¼þ¾Í»áÇëÇó×ÜÏß½Ó¿Ú²¿¼þ½øÈë×ÜÏßÖÜÆÚ£¬Íê³É·ÃÎÊÄÚ´æ»òÕß
ÊäÈë/Êä³ö¶Ë¿ÚµÄ²Ù×÷£»Èç¹û´Ëʱ×ÜÏß½Ó¿Ú²¿¼þÕýºÃ´¦ÓÚ¿ÕÏÐ״̬£¬ÄÇô£¬»áÁ¢¼´ÏìÓ¦Ö´ÐÐ
²¿¼þµÄ×ÜÏßÇëÇó¡£µ«ÓÐʱ»áÓöµ½ÕâÑùµÄÇé¿ö£¬Ö´Ðв¿¼þÇëÇó×ÜÏß½Ó¿Ú²¿¼þ·ÃÎÊ×ÜÏßʱ£¬×ÜÏß
½Ó¿Ú²¿¼þÕýÔÚ½«Ä³¸öÖ¸Áî×Ö½ÚÈ¡µ½Ö¸Áî¶ÓÁÐÖУ¬´Ëʱ×ÜÏß½Ó¿Ú²¿¼þ½«Ê×ÏÈÍê³ÉÕâ¸öȡָÁîµÄ
²Ù×÷£¬È»ºóÔÙÈ¥ÏìÓ¦Ö´Ðв¿¼þ·¢³öµÄ·ÃÎÊ×ÜÏßµÄÇëÇó¡£
¢Û µ±Ö¸Áî¶ÓÁÐÒÑÂú£¬¶øÇÒÖ´Ðв¿¼þÓÖûÓÐ×ÜÏß·ÃÎÊÇëÇóʱ£¬×ÜÏß½Ó¿Ú²¿¼þ±ã½øÈë¿ÕÏÐ
״̬¡£¢Ü ÔÚÖ´ÐÐ×ªÒÆÖ¸Áî¡¢µ÷ÓÃÖ¸ÁîºÍ·µ»ØÖ¸Áîʱ£¬ÓÉÓÚ³ÌÐòÖ´ÐеÄ˳Ðò·¢ÉúÁ˸ı䣬²»ÔÙ
ÊÇ˳ÐòÖ´ÐÐÏÂÃæÒ»ÌõÖ¸ÁÕâʱ£¬Ö¸Áî¶ÓÁÐÖÐÒѾ°´Ë³Ðò×°ÈëµÄ×Ö½Ú¾ÍûÓÃÁË¡£Óöµ½ÕâÖÖÇé
¿ö£¬Ö¸Áî¶ÓÁÐÖеÄÔÓÐÄÚÈݽ«±»×Ô¶¯Ïû³ý£¬×ÜÏß½Ó¿Ú²¿¼þ»á°´×ªÒÆÎ»ÖÃÍùÖ¸Áî¶ÓÁÐ×°ÈëÁíÒ»
¸ö³ÌÐò¶ÎÖеÄÖ¸Áî¡£
3£® 8086/8088 CPU ÖÐÓÐÄÄЩ¼Ä´æÆ÷£¿¸÷ÓÐʲôÓÃ;£¿±êÖ¾¼Ä´æÆ÷F ÓÐÄÄЩ±ê־λ£¿¸÷ÔÚʲ ôÇé¿öÏÂÖÃλ£¿ ½â´ð£º ¼Ä´æÆ÷¹¦ÄÜ Êý¾Ý ¼Ä´æÆ÷
AX ×ֳ˷¨£¬×Ö³ý·¨£¬×ÖI/O BX ²é±íת»»
CX ´®²Ù×÷£¬Ñ»·´ÎÊý
DX ×Ö½ÚÏà³Ë£¬×Ö½ÚÏà³ý£¬¼ä½ÓI/O ±äÖ· ¼Ä´æÆ÷
SI Ô´±äÖ·¼Ä´æÆ÷£¬ÓÃÓÚÖ¸ÁîµÄ±äַѰַ DI Ä¿µÄ±äÖ·¼Ä´æÆ÷£¬ÓÃÓÚÖ¸ÁîµÄ±äַѰַ Ö¸Õë ¼Ä´æÆ÷
SP ¶ÑÕ»Ö¸Õë¼Ä´æÆ÷£¬ÓëSS Ò»ÆðÀ´È·¶¨¶ÑÕ»ÔÚÄÚ´æÖеÄλÖÃ
BP »ùÊýÖ¸Õë¼Ä´æÆ÷£¬ÓÃÓÚ´æ·Å»ùµØÖ·£¬ÒÔʹ8086/8088 Ѱַ¸ü¼ÓÁé»î ¿ØÖÆ ¼Ä´æÆ÷
IP ¿ØÖÆCPU µÄÖ¸ÁîÖ´ÐÐ˳Ðò
PSW ÓÃÀ´´æ·Å8086/8088CPU ÔÚ¹¤×÷¹ý³ÌÖеÄ״̬ ¶Î¼Ä´æÆ÷CS ¿ØÖƳÌÐòÇø DS ¿ØÖÆÊý¾ÝÇø
SS ¿ØÖƶÑÕ»Çø ES ¿ØÖÆÊý¾ÝÇø
±êÖ¾¼Ä´æÆ÷F µÄ±ê־λ£º¢Ù¿ØÖƱêÖ¾£ºOF¡¢DF¡¢IF¡¢TF£»¢Ú״̬±êÖ¾£ºSF¡¢ZF¡¢AF¡¢ PF¡¢CF¡£
±êÖ¾¼Ä´æÆ÷F µÄ¸÷±ê־λÖÃλÇé¿ö£º
¡¤ CF£º½øÎ»±ê־λ¡£×ö¼Ó·¨Ê±³öÏÖ½øÎ»»ò×ö¼õ·¨Ê±³öÏÖ½è룬¸Ã±ê־λÖÃ1£»·ñÔòÇå0¡£
¡¤PF£ºÆæÅ¼±ê־λ¡£µ±½á¹ûµÄµÍ8 λÖÐl µÄ¸öÊýΪżÊýʱ£¬¸Ã±ê־λÖÃ1£»·ñÔòÇå0¡£
¡¤AF£º°ë½øÎ»±ê־λ¡£ÔÚ¼Ó·¨Ê±£¬µ±Î»3 ÐèÏòλ4 ½øÎ»£¬»òÔÚ¼õ·¨Ê±Î»3 ÐèÏòλ4 ½èλ
ʱ£¬¸Ã±ê־λ¾ÍÖÃ1£»·ñÔòÇå0¡£¸Ã±ê־λͨ³£ÓÃÓÚ¶ÔBCD ËãÊõÔËËã½á¹ûµÄµ÷Õû¡£
¡¤ZF£ºÁã±ê־λ¡£ÔËËã½á¹û¸÷λ¶¼Îª0 ʱ£¬¸Ã±ê־λÖÃ1£¬·ñÔòÇå0¡£
¡¤SF£º·ûºÅ±ê־λ¡£µ±ÔËËã½á¹ûµÄ×î¸ßλΪ1 ʱ£¬¸Ã±ê־λÖÃ1£¬·ñÔòÇå0¡£ ¡¤TF£ºÏÝÚå±ê־λ(µ¥²½±ê־λ)¡£µ±¸ÃλÖÃ1 ʱ£¬½«Ê¹8086/8088 ½øÈëµ¥²½Ö¸Á×÷·½Ê½¡£
ÔÚÿÌõÖ¸ÁʼִÐÐÒÔǰ£¬CPU ×ÜÊÇÏȲâÊÔTF λÊÇ·ñΪ1£¬Èç¹ûΪ1£¬ÔòÔÚ±¾Ö¸ÁîÖ´
Ðк󽫲úÉúÏÝÚåÖжϣ¬´Ó¶øÖ´ÐÐÏÝÚåÖжϴ¦Àí³ÌÐò¡£¸Ã³ÌÐòµÄÊ×µØÖ·ÓÉÄÚ´æµÄ 00004H~00007H 4 ¸öµ¥ÔªÌṩ¡£¸Ã±ê־ͨ³£ÓÃÓÚ³ÌÐòµÄµ÷ÊÔ¡£ÀýÈ磬ÔÚϵͳµ÷ÊÔÈí¼þ
DEBUG ÖеÄT ÃüÁ¾ÍÊÇÀûÓÃËüÀ´½øÐгÌÐòµÄµ¥²½¸ú×ٵġ£
¡¤IF£ºÖжÏÔÊÐí±ê־λ¡£Èç¹û¸ÃλÖÃ1£¬Ôò´¦ÀíÆ÷¿ÉÒÔÏìÓ¦¿ÉÆÁ±ÎÖжϣ¬·ñÔò¾Í²»ÄÜÏìÓ¦
¿ÉÆÁ±ÎÖжϡ£
¡¤DF£º·½Ïò±ê־λ¡£µ±¸ÃλÖÃ1 ʱ£¬´®²Ù×÷Ö¸ÁîΪ×Ô¶¯¼õÁ¿Ö¸Á¼´´Ó¸ßµØÖ·µ½µÍµØÖ·
´¦Àí×Ö·û´®£»·ñÔò´®²Ù×÷Ö¸ÁîΪ×Ô¶¯ÔöÁ¿Ö¸Áî¡£
¡¤OF£ºÒç³ö±ê־λ¡£ÔÚËãÊõÔËËãÖУ¬´ø·ûºÅµÄÊýµÄÔËËã½á¹û³¬³öÁË8 λ»ò16 λ´ø·ûºÅÊý
ËùÄܱí´ïµÄ·¶Î§Ê±£¬¼´×Ö½ÚÔËËã´óÓÚÊ®127 »òСÓÚ£128 ʱ£¬×ÖÔËËã´óÓÚÊ®32767
»òСÓÚ£32768 ʱ£¬¸Ã±ê־λÖÃλ¡£4£® 8086/8088 ϵͳÖд洢Æ÷µÄÂß¼µØÖ·ºÍÎïÀíµØÖ·Ö®¼äÓÐʲô¹ØÏµ£¿±íʾµÄ·¶Î§¸÷Ϊ¶à ÉÙ£¿ ½â´ð£º
Âß¼µØÖ·£º¶ÎµØÖ·£ºÆ«ÒƵØÖ·
ÎïÀíµØÖ·£ºÒ²³ÆÎª¾ø¶ÔµØÖ·£¬ÓɶλùÖ·ºÍÆ«ÒÆÁ¿Á½²¿·Ö¹¹³É¡£ÎïÀíµØÖ·ÓëϵͳÖеĴ洢
¿Õ¼äÊÇÒ»Ò»¶ÔÓ¦µÄ¡£
Âß¼µØÖ·ÓëÎïÀíµØÖ·Á½ÕßÖ®¼äµÄ¹ØÏµÎª£ºÎïÀíµØÖ·£½¶ÎµØÖ·¡Á16+Æ«ÒÆµØÖ· ÿ¸öÂß¼¶ÎµÄµØÖ··¶Î§£º0000£º0000H¡«FFFFH£»0001£º0000H¡«FFFFH£»¡£»
FFFF£º
0000H¡«FFFFH£»¹²ÓÐ232¸öµØÖ·£¬µ«ÆäÖÐÓÐÐí¶àµØÖ·ÊÇÖØµþµÄ£¨ÌåÏÖ³öÂß¼µØÖ·µÄÓÅÊÆ£¬
¿É¸ù¾ÝÐèÒª·½±ãµØÐ´³öÂß¼µØÖ·£¬ÓÖ²»Ó°ÏìÆä׼ȷµÄÎïÀíµØÖ·£¬Âß¼µØÖ·ÓëÎïÀíµØÖ·µÄ¹ØÏµ
Ϊ¶à¶ÔÒ»µÄ¹ØÏµ£©¡£
ÎïÀíµØÖ·µÄµØÖ··¶Î§£º00000H¡«FFFFFH¡£
5£® ÒÑÖªµ±Ç°Êý¾Ý¶ÎλÓÚ´æ´¢Æ÷µÄA1000H µ½B0FFFH ·¶Î§ÄÚ£¬ÎÊDS=£¿ ½â´ð£º
A1000H¡úA100£º0000 ÒÔA100H Ϊ¶ÎµØÖ·µÄ64K ÎïÀíµØÖ·µÄ·¶Î§ÊÇ£ºÆ«ÒƵØÖ·Îª
0000H¡«FFFFH£¬¼´A100£º0000H¡«A100£ºFFFFH¡úA1000H£«0000H¡«A1000H£«0FFFFH
£½A1000H¡«B0FFFH£¬¡àDS£½A100H¡£
6£® ij³ÌÐòÊý¾Ý¶ÎÖдæÓÐÁ½¸ö×ÖÊý¾Ý1234H ºÍ5A6BH£¬ÈôÒÑÖªDS=5AA0H£¬ËüÃÇµÄÆ«ÒƵØ
Ö··Ö±ðΪ245AH ºÍ3245H£¬ÊÔ»³öËüÃÇÔÚ´æ´¢Æ÷ÖеĴæ·ÅÇé¿ö ½â´ð£º
´æ·ÅÇé¿öÈçͼËùʾ(×óÓÒÁ½²àµÄд·¨¾ù¿É)£º 5AA0£º 0000H 5AA0£º 245AH 5AA0£º 245BH 5AA0£º 3245H 5AA0£º 3246H ¡¤¡¤¡¤ ¡¤¡¤¡¤ ¡¤¡¤¡¤ 34H 12H 6BH 5AH 5AA00H 5CE5AH 5CE5BH 5DC45H 5DC46H ¡¤¡¤¡¤ ¡¤¡¤¡¤ ¡¤¡¤¡¤
7£® 8086/8088CPU ÓÐÄÄÁ½ÖÖ¹¤×÷ģʽ£¬ËüÃǸ÷ÓÐÊ²Ã´ÌØµã£¿
½â´ð£ºÎªÁËÊÊÓ¦¸÷ÖÖ²»Í¬µÄÓ¦Óó¡ºÏ£¬8086/8088CPU оƬ¿É¹¤×÷ÔÚÁ½ÖÖ²»Í¬µÄ¹¤×÷ģʽÏ£¬
¼´×îСģʽÓë×î´óģʽ¡£
Ëùν×îСģʽ£¬¾ÍÊÇϵͳÖÐÖ»ÓÐÒ»¸ö8086/8088 ΢´¦ÀíÆ÷£¬ÔÚÕâÖÖÇé¿öÏ£¬ËùÓеÄ×Ü
Ïß¿ØÖÆÐźţ¬¶¼ÊÇÖ±½ÓÓÉÕâÆ¬8086/8088CPU ²úÉúµÄ£¬ÏµÍ³ÖеÄ×ÜÏß¿ØÖÆÂß¼
µç·±»¼õµ½×î
ÉÙ¡£¸ÃģʽÊÊÓÃÓÚ¹æÄ£½ÏСµÄ΢»úÓ¦ÓÃϵͳ¡£
×î´óģʽÊÇÏà¶ÔÓÚ×îСģʽ¶øÑԵģ¬×î´óģʽÓÃÔÚÖС¢´ó¹æÄ£µÄ΢»úÓ¦ÓÃϵͳÖС£ÔÚ×î
´óģʽÏ£¬ÏµÍ³ÖÐÖÁÉÙ°üº¬Á½¸ö΢´¦ÀíÆ÷£¬ÆäÖÐÒ»¸öΪÖ÷´¦ÀíÆ÷£¬¼´8086/8088CPU£¬ÆäËü
µÄ΢´¦ÀíÆ÷³ÆÖ®ÎªÐ´¦ÀíÆ÷£¬ËüÃÇÊÇÐÖúÖ÷´¦ÀíÆ÷¹¤×÷µÄ¡£
8£® Èô8086CPU ¹¤×÷ÓÚ×îСģʽ£¬ÊÔÖ¸³öµ±CPU Íê³É½«AH µÄÄÚÈÝË͵½ÎïÀíµØÖ·Îª91001H
µÄ´æ´¢µ¥Ôª²Ù×÷ʱ£¬ÒÔÏÂÄÄЩÐźÅӦΪµÍµçƽ£ºM/ IO¡¢RD ¡¢WR ¡¢BHE /S7¡¢DT/ R ¡£
ÈôCPU Íê³ÉµÄÊǽ«ÎïÀíµØÖ·91000H µ¥ÔªµÄÄÚÈÝË͵½AL ÖУ¬ÔòÉÏÊöÄÄЩÐźÅӦΪµÍµç
ƽ¡£ÈôCPU Ϊ8088 ÄØ£¿ ½â´ð£º8086CPU
¢Ù´æ´¢Æ÷д(AH¡ú9100H[0001H])ʱΪµÍµçƽµÄÐźţºWR¡¢7 /S BHE ¡£ ¢Ú´æ´¢Æ÷¶Á(9100H[0000H]¡úAL)ʱΪµÍµçƽµÄÐźţºRD ¡¢R / DT ¡£ 8088CPU
¢Ù´æ´¢Æ÷д(AH¡ú9100H[0001H])ʱΪµÍµçƽµÄÐźţºWR¡¢) /S BHE ( SS 7 0 ¡¢M/ IO¡£
¢Ú´æ´¢Æ÷¶Á(9100H[0000H]¡úAL)ʱΪµÍµçƽµÄÐźţºM/ IO¡¢RD ¡¢R / DT ¡£ 9£® ʲôÊÇÖ¸ÁîÖÜÆÚ£¿Ê²Ã´ÊÇ×ÜÏßÖÜÆÚ£¿Ê²Ã´ÊÇʱÖÓÖÜÆÚ£¿ËüÃÇÖ®¼äµÄ¹ØÏµÈçºÎ£¿
½â´ð£ºÖ¸ÁîÖÜÆÚ----CPU Ö´ÐÐÒ»ÌõÖ¸ÁîËùÐèÒªµÄʱ¼ä³ÆÎªÒ»¸öÖ¸ÁîÖÜÆÚ(Instruction Cycle)¡£
×ÜÏßÖÜÆÚ----ÿµ±CPU Òª´Ó´æ´¢Æ÷»òI/O ¶Ë¿Ú´æÈ¡Ò»¸ö×Ö½Ú³ÆÎªÒ»´Î×ÜÏß²Ù×÷£¬ÏàÓ¦
ÓÚij¸ö×ÜÏß²Ù×÷µÄʱ¼ä¼´ÎªÒ»¸ö×ÜÏßÖÜÆÚ(BUS Cycle)¡£
ʱÖÓÖÜÆÚ----ʱÖÓÖÜÆÚÊÇCPU ´¦Àí¶¯×÷µÄ×îСʱ¼äµ¥Î»£¬ÆäÖµµÈÓÚϵͳʱÖÓÆµÂʵĵ¹
Êý£¬Ê±ÖÓÖÜÆÚÓÖ³ÆÎªT ״̬¡£
ËüÃÇÖ®¼äµÄ¹ØÏµ£ºÈô¸É¸ö×ÜÏßÖÜÆÚ¹¹³ÉÒ»¸öÖ¸ÁîÖÜÆÚ£¬Ò»¸ö»ù±¾µÄ×ÜÏßÖÜÆÚÓÉ4 ¸öT×é
³É£¬ÎÒÃÇ·Ö±ð³ÆÎªT1¡«T4£¬ÔÚÿ¸öT״̬Ï£¬CPUÍê³É²»Í¬µÄ¶¯×÷¡£
10£® 8086/8088 CPU ÓÐÄÄЩ»ù±¾²Ù×÷£¿»ù±¾µÄ¶Á/д×ÜÏßÖÜÆÚ¸÷°üº¬¶àÉÙ¸öʱÖÓÖÜÆÚ£¿
ʲôÇé¿öÏÂÐèÒª²åÈëTw ÖÜÆÚ£¿Ó¦²åÈë¶àÉÙ¸öTw È¡¾öÓÚʲôÒòËØ£¿
½â´ð£º¢Ù8086/8088CPU ×îСģʽϵĵäÐÍʱÐòÓУº´æ´¢Æ÷¶Áд£»ÊäÈëÊä³ö£»ÖжÏÏìÓ¦£»Ïµ
ͳ¸´Î»¼°×ÜÏßÕ¼ÓòÙ×÷¡£
¢ÚÒ»¸ö»ù±¾µÄCPU ×ÜÏßÖÜÆÚÒ»°ã°üº¬Ëĸö״̬£¬¼´ËĸöʱÖÓÖÜÆÚ£» 4 3 2 1 T T T T ¡¢¡¢¡¢
¢ÛÔÚ´æ´¢Æ÷ºÍÍâÉèËٶȽÏÂýʱ£¬ÒªÔÚÖ®ºó²åÈë1 ¸ö»ò¼¸¸öµÈ´ý״̬£» 3 T w T ¢ÜÓ¦²åÈë¶àÉÙ¸öÈ¡¾öÓÚREADY ÐźŵÄ״̬£¬CPU ûÓÐÔÚ״̬µÄÒ»¿ªÊ¼²ÉÑùµ½
READY ÐźÅΪµÍµçƽ£¬¾Í»áÔÚºÍÖ®¼ä²åÈëµÈ´ý״̬£¬Ö±µ½²ÉÑùµ½READY ÐźÅΪ
¸ßµçƽ¡£ w T 3 T 3 T 4 T w T
11£® ÊÔ˵Ã÷8086/8088 ¹¤×÷ÔÚ×î´óºÍ×îСģʽÏÂϵͳ»ù±¾ÅäÖõIJîÒì¡£8086/8088 ΢»ú
ϵͳÖÐΪʲôһ¶¨ÒªÓеØÖ·Ëø´æÆ÷£¿ÐèÒªËø´æÄÄЩÐÅÏ¢£¿ ½â´ð£º×î´óģʽÅäÖúÍ×îСģʽÅäÖÃÓÐÒ»¸öÖ÷ÒªµÄ²î±ð£º¢Ù¾ÍÊÇÔÚ×î´óģʽÏ£¬ÐèÒªÓÃÍâ¼Ó
µç·À´¶ÔCPU ·¢³öµÄ¿ØÖÆÐźŽøÐб任ºÍ×éºÏ£¬ÒԵõ½¶Ô´æ´¢Æ÷ºÍI/O ¶Ë¿ÚµÄ¶Á/дÐźż°
¶ÔËø´æÆ÷£¨8282£©ºÍ¶Ô×ÜÏßÊÕ·¢Æ÷£¨8286£©µÈµÈµÄ¿ØÖÆÐźš£8288 ×ÜÏß¿ØÖÆÆ÷¾ÍÊÇÍê³ÉÉÏ
ÃæÕâЩ¹¦ÄܵÄרÓÃоƬ¡£¢ÚΪ¶àÖжÏÔ´µÄÐèÒª£¬³£²ÉÓÃÖжÏÓÅÏÈȨ¿ØÖƵç·£¨ÈçIntel8259A£©¡£
8086/8088 ϵͳһ¶¨ÒªÓеØÖ·Ëø´æÆ÷¨D¨DÒòΪ¸ßËÄλµØÖ·ºÍ״̬ÐźÅÊÇ´Óͬһ×éÒý½ÅÉÏ
·ÖʱËͳöµÄ£¬µÍ16 λµØÖ·ºÍÊý¾ÝÊÇ´Óͬһ×éÒý½ÅÉÏ·Öʱ´«ÊäµÄ£¬ËùÒÔ±ØÐë°ÑµØÖ·ÐÅÏ¢Ëø´æ ÆðÀ´¡£
ÐèÒªËø´æµÄÐÅÏ¢£ºµØÖ·Ðźš¢7 /S BHE ºÍM IO/ £¨8086 ΪIO M/ £©ÐźŽøÐÐËø´æ¡£
12£®ÊÔ¼òÊö8086/8088 ΢»úϵͳ×îСģʽÏ´ӴæÆ÷´¢¶ÁÊý¾ÝʱµÄʱÐò¹ý³Ì¡£ ½â´ð£ºÕý³£µÄ´æ´¢Æ÷¶Á×ÜÏß²Ù×÷Õ¼ÓÃ4 ¸öʱÖÓÖÜÆÚ£¬Í¨³£½«ËüÃdzÆÎª4 ¸öT״̬¼´T1¡« T4¡£
¢Ù T1״̬£¬IO/M=0£¬Ö¸³öÒª·ÃÎÊ´æ´¢Æ÷¡£Ë͵ØÖ·ÐźÅA19-0£¬µØÖ·Ëø´æÐźÅALEÓÐЧ£¬
ÓÃÀ´¿ØÖÆ8282 Ëø´æµØÖ·¡£DT/ R =0£¬¿ØÖÆ8286/8287 ¹¤×÷ÔÚ½ÓÊÕ״̬£¨¶Á£©¡£
¢Ú T2״̬£¬A19~A16ËÍ״̬S6 ~S3£¬AD7 ~AD0¸¡¿Õ£¬×¼±¸½ÓÊÕÊý¾Ý¡£Í¬Ê±£¬RD £½0£¬±í
ʾҪ½øÐжÁ²Ù×÷£¬¶øDEN =0 ×÷Ϊ8286/8287 µÄѡͨÐźţ¬ÔÊÐí½øÐÐÊý¾Ý´«Êä¡£
¢Û T3״̬£¬´ÓÖ¸¶¨µÄ´æ´¢µ¥Ôª½«Êý¾Ý¶Á³öËÍAD7 ~AD0¡£Èô´æ´¢Æ÷ËٶȽÏÂý£¬²»Äܼ°Ê±
¶Á³öÊý¾ÝµÄ»°£¬Ôòͨ¹ýREADYÒý½Å֪ͨCPU£¬CPUÔÚT3µÄÇ°ÑØ²ÉÑùREADY£¬Èç¹û
READY£½0£¬ÔòÔÚT3½áÊøºó×Ô¶¯²åÈë1 ¸ö»ò¼¸¸öµÈ´ý״̬TW£¬²¢ÔÚÿ¸öTWµÄÇ°ÑØ¼ì
²âREADY£¬µÈµ½READY±ä¸ßºó£¬¾Í×Ô¶¯ÍÑÀëTW½øÈëT4¡£
¢Ü T4״̬£¬CPU²ÉÑùÊý¾ÝÏߣ¬»ñµÃÊý¾Ý¡£RD ¡¢DEN µÈÐźÅʧЧ¡£ CH02 8086£¯8088 Ö¸Áîϵͳ ϰÌâÓë˼¿¼Ìâ
1£®¼Ù¶¨DS=2000H£¬ES=2100H£¬SS=1500H£¬SI=00A0H£¬BX=0100H£¬BP=0010H£¬Êý¾Ý±ä
Á¿VAL µÄÆ«ÒÆµØÖ·Îª0050H£¬ÇëÖ¸³öÏÂÁÐÖ¸ÁîÔ´²Ù×÷ÊýÊÇʲôѰַ·½Ê½£¿Ô´²Ù×÷ÊýÔÚÄÄ
ÀÈçÔÚ´æ´¢Æ÷ÖÐÇëд³öÆäÎïÀíµØÖ·ÊǶàÉÙ£¿ £¨1£©MOV AX£¬0ABH £¨2£©MOV AX£¬[100H] £¨3£©MOV AX£¬VAL £¨4£©MOV BX£¬[SI]
£¨5£©MOV AL£¬VAL[BX] £¨6£©MOV CL£¬[BX][SI] £¨7£©MOV VAL[SI]£¬BX £¨8£©MOV [BP][SI]£¬100 ½â´ð£º
£¨1£©MOV AX£¬0ABH
Ѱַ·½Ê½£ºÁ¢¼´Ñ°Ö·£»Ô´²Ù×÷ÊýÔÚÊý¾ÝÏßÉÏ£»ÎïÀíµØÖ·£ºÎÞ £¨2£©MOV AX£¬[100H]
Ѱַ·½Ê½£ºÖ±½ÓѰַ£»Ô´²Ù×÷ÊýÔÚ´æ´¢Æ÷ÖУ»ÎïÀíµØÖ·£ºDS£ª16+100H£½ 2000H*16+100H£½20100H £¨3£©MOV AX£¬VAL
Ѱַ·½Ê½£ºÖ±½ÓѰַ£»Ô´²Ù×÷ÊýÔÚ´æ´¢Æ÷ÖУ»ÎïÀíµØÖ·£ºDS£ª16+VAL£½ 2000H*16+0050H£½20050H £¨4£©MOV BX£¬[SI]
Ѱַ·½Ê½£º¼Ä´æÆ÷¼ä½ÓѰַ£»Ô´²Ù×÷ÊýÔÚ´æ´¢Æ÷ÖУ»ÎïÀíµØÖ·£ºDS£ª16+SI£½ 2000H*16+00A0H£½200A0H £¨5£©MOV AL£¬VAL[BX]
Ѱַ·½Ê½£º±äַѰַ£»Ô´²Ù×÷ÊýÔÚ´æ´¢Æ÷ÖУ»ÎïÀíµØÖ·£ºDS£ª16+VAL+BX£½ 2000H*16+0050H+0100 £½20150H
£¨6£©MOV CL£¬[BX][SI]
Ѱַ·½Ê½£º»ùÖ·¼Ó±äַѰַ£»Ô´²Ù×÷ÊýÔÚ´æ´¢Æ÷ÖУ»ÎïÀíµØÖ·£ºDS£ª16+BX+SI£½
2000H*16+0100H+00A0H £½201A0H
£¨7£©MOV VAL[SI]£¬BX
Ѱַ·½Ê½£º¼Ä´æÆ÷Ѱַ£»Ô´²Ù×÷ÊýÔڼĴæÆ÷ÖУ»ÎïÀíµØÖ·£ºÎÞ £¨8£©MOV [BP][SI]£¬100
Ѱַ·½Ê½£ºÁ¢¼´Ñ°Ö·£»Ô´²Ù×÷ÊýÔÚ£»ÎïÀíµØÖ·£ºÎÞ
2£®ÉèÓйؼĴæÆ÷¼°´æ´¢µ¥ÔªµÄÄÚÈÝÈçÏ£º DS=2000H £¬ BX=0100H £¬ AX=1200H £¬ SI=0002H £¬ [20100H]=12H £¬ [20101H]=34H £¬
[20102H]=56H £¬ [20103]=78H £¬ [21200]=2AH £¬ [21201H]=4CH £¬ [21202H]=0B7H £¬ [21203H]=65H¡£
ÊÔ˵Ã÷ÏÂÁи÷ÌõÖ¸Áîµ¥¶ÀÖ´ÐкóÏà¹Ø¼Ä´æÆ÷»ò´æ´¢µ¥ÔªµÄÄÚÈÝ¡£ £¨1£©MOV AX£¬1800H £¨2£©MOV AX£¬BX
£¨3£©MOV BX£¬[1200H] £¨4£©MOV DX£¬1100[BX] £¨5£©MOV [BX][SI]£¬AL £¨6£©MOV AX£¬1100[BX][SI] ½â´ð£º
ÌâºÅÖ¸ÁîÖ´Ðнá¹û
£¨1£© MOV AX£¬1800H AX£½1800H £¨2£© MOV AX£¬BX AX£½0100H
£¨3£© MOV BX£¬[1200H] BX£½4C2AH £¨4£© MOV DX£¬1100[BX] DX£½4C2AH £¨5£© MOV [BX][SI]£¬AL [20102H]£½00H £¨6£© MOV AX£¬1100[BX][SI] AX£½65B7H
3£®¼Ù¶¨BX=0E3H£¬±äÁ¿VALUE=79H£¬È·¶¨ÏÂÁÐÖ¸ÁîÖ´ÐкóµÄ½á¹û(²Ù×÷Êý¾ùΪÎÞ·ûºÅÊý¡£
¶Ô3¡¢6£¬Ð´³öÏàÓ¦±ê־λµÄ״̬)¡£
£¨1£©ADD VALUE£¬BX £¨2£©AND BX£¬VALUE £¨3£©CMP BX£¬VALUE £¨4£©XOR BX£¬0FFH £¨5£©DEC BX £¨6£©TEST BX£¬01H ½â´ð£º
ÌâºÅÖ¸ÁîÖ´Ðнá¹û
£¨1£© ADD VALUE£¬BX BX£½015CH £¨2£© AND BX£¬VALUE BX£½0061H
£¨3£© CMP BX£¬VALUE BX£½00E3H(CF=ZF=OF=SF=0£¬AF=PF=1) £¨4£© XOR BX£¬0FFH BX£½001CH £¨5£© DEC BX BX£½00E2H
£¨6£© TEST BX£¬01H BX£½00E3H(CF=ZF=OF=SF=AF=PF=0)
4£®ÒÑÖªSS=0FFA0H£¬SP=00B0H£¬ÏÈÖ´ÐÐÁ½Ìõ°Ñ8057H ºÍ0F79H ·Ö±ð½øÕ»µÄPUSH Ö¸Á
ÔÙÖ´ÐÐÒ»ÌõPOP Ö¸ÁÊÔ»³ö¶ÑÕ»ÇøºÍSP ÄÚÈݱ仯µÄ¹ý³ÌʾÒâͼ¡££¨±ê³ö´æ´¢µ¥ÔªµÄµØ Ö·£©
½â´ð£º 00ADH 00AEH 00AFH
0FFA0£º 00B0H ¡¤¡¤¡¤
FFAACH FFAADH FFAAEH FFAAFH FFAB0H ¡¤¡¤¡¤ 00ACH X
FFAABH 00ADH 00AEH 00AFH
0FFA0£º 00B0H ¡¤¡¤¡¤ 57H
80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H ¡¤¡¤¡¤ 00ACH X
FFAABH
¢Ù³õʼ״̬£»SP£½ 00B0H ¢Ú PUSH AX£» £¨ AX£½ 8057H£© SP£½ 00AEH 00ADH 00AEH 00AFH
0FFA0£º 00B0H ¡¤¡¤¡¤ 79H 0FH 57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H ¡¤¡¤¡¤ 00ACH X
FFAABH 00ADH 00AEH 00AFH
0FFA0£º 00B0H ¡¤¡¤¡¤ 57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H ¡¤¡¤¡¤ 00ACH X
FFAABH
¢Û PUSH BX£» £¨ BX£½ 0F79H£© SP£½ 00ACH ¢Ü POP BX£» SP£½ 00AEH ¶ÑÕ»¶ÎSS£½0FFA0H ¶ÑÕ»¶ÎSS£½0FFA0H
¶ÑÕ»¶ÎSS£½0FFA0H ¶ÑÕ»¶ÎSS£½0FFA0H 5£®ÒÑÖª³ÌÐò¶ÎÈçÏ£º MOV AX£¬1234H MOV CL£¬4 ROL AX£¬CL DEC AX MOV CX£¬4 MUL CX
ÊÔÎÊ£º£¨1£©Ã¿ÌõÖ¸ÁîÖ´Ðкó£¬AX ¼Ä´æÆ÷µÄÄÚÈÝÊÇʲô£¿£¨2£©Ã¿ÌõÖ¸ÁîÖ´Ðкó£¬CF£¬SF ¼°
ZF µÄÖµ·Ö±ðÊÇʲô£¿£¨3£©³ÌÐòÔËÐнáÊøÊ±£¬AX ¼°DX ¼Ä´æÆ÷µÄֵΪ¶àÉÙ£¿ Ö¸ÁîÖ´Ðнá¹û AX CF SF ZF
MOV AX£¬1234H AX£½1234H ¡Á ¡Á ¡Á MOV CL£¬4 AX£½1234H ¡Á ¡Á ¡Á ROL AX£¬CL AX£½2341H 1 0 0 DEC AX AX£½2340H 1 0 0 MOV CX£¬4 AX£½2340H 1 0 0
MUL CX AX£½8D00H£¬DX=0000H 0 0 0
6£®Ð´³öʵÏÖÏÂÁмÆËãµÄÖ¸ÁîÐòÁС££¨¼Ù¶¨X¡¢Y¡¢Z¡¢W¡¢R ¶¼Îª×Ö±äÁ¿£© £¨1£©Z=W+£¨Z+X£© £¨2£©Z=W-£¨X+6£©-£¨R+9£©
£¨3£©Z=£¨W*X£©/£¨R+6£© £¨4£©Z=£¨£¨W-X£©/5*Y£©*2 ½â´ð£º£¨1£©Z=W+£¨Z+X£© ÌâºÅÖ¸ÁîÌâºÅÖ¸Áî
£¨1£© Z=W+£¨Z+X£© £¨2£© Z=W-£¨X+6£©-£¨R+9£© MOV AX£¬Z MOV DX£¬R MOV BX£¬X ADD DX£¬9 MOV CX£¬W MOV BX£¬X ADD BX ADD BX£¬6 ADC CX MOV AX£¬W MOV Z£¬AX SUB AX£¬BX SUB AX£¬DX MOV Z£¬AX
£¨3£© Z=£¨W*X£©/£¨R+6£© £¨4£© Z=£¨£¨W-X£©/5*Y£©*2 MOV DX£¬0 MOV AX£¬W MOV AX£¬W MOV BX£¬X MOV BX£¬X SUB AX£¬BX MUL BX MOV DX£¬0 PUSH AX MOV CL£¬5 MOV AX£¬R DIV CL ADD AX£¬6 MOV BX£¬Y MOV CX£¬AX MUL BX POP AX MOV CL£¬2 DIV CX MUL CL
MOV Z£¬AX MOV Z£¬AX
MOV Z+1£¬DX MOV Z+1£¬DX
7£®¼Ù¶¨DX=1100100110111001B£¬CL=3£¬CF=1£¬ÊÔÈ·¶¨ÏÂÁи÷ÌõÖ¸Áîµ¥¶ÀÖ´ÐкóDX µÄÖµ¡£
£¨1£©SHR DX£¬1 £¨2£©SHL DL£¬1 £¨3£©SAL DH£¬1 £¨4£©SAR DX£¬CL £¨5£©ROR DX£¬CL £¨6£©ROL DL£¬CL £¨7£©RCR DL£¬1 £¨8£©RCL DX£¬CL ½â´ð£º
ÌâºÅÖ¸ÁîÖ´Ðнá¹û
£¨1£© SHR DX£¬1 DX=0110 0100 1101 1100(64DCH) £¨2£© SHL DL£¬1 DX=1100 1001 0111 0010(C972H)
£¨3£© SAL DH£¬1 DX=1001 0010 1011 1001(92B9H) £¨4£© SAR DX£¬CL DX=1111 1001 0011 0111(F937H) £¨5£© ROR DX£¬CL DX=0011 1001 0011 0111(3937H) £¨6£© ROL DL£¬CL DX=1100 1001 1100 1101(C9CDH) £¨7£© RCR DL£¬1 DX=1100 1001 1101 1100(C9DCH) £¨8£© RCL DX£¬CL DX=0100 1101 1100 1011(4DCFH)
8£®ÒÑÖªDX=1234H£¬AX=5678H£¬ÊÔ·ÖÎöÏÂÁгÌÐòÖ´ÐкóDX¡¢AX µÄÖµ¸÷ÊÇʲô£¿¸Ã³ÌÐò
Íê³ÉÁËʲô¹¦ÄÜ£¿ MOV CL£¬4 SHL DX£¬CL MOV BL£¬AH SHL BL£¬CL SHR BL£¬CL OR DL£¬BL
½â´ð£ºDX=2345H£¬AX=6780H¡£¸Ã³ÌÐòÍê³ÉµÄ¹¦ÄÜÈçͼËùʾ£¬½«DX£¬AXÆ´×°³ÉË«×Öºó£¬ ×óÒÆËÄλ¡£ DX DX AX 1 2 3 4 5 6 7 8 DX AX 2 3 4 0 6 7 8 0
2 3 4 5 6 7 8 0 AX
9£®ÊÔ·ÖÎöÏÂÁгÌÐò¶Î£º ADD AX£¬BX JNC L2
SUB AX£¬BX JNC L3
JMP SHORTL5
Èç¹ûAX¡¢BX µÄÄÚÈݸø¶¨ÈçÏ£º AX BX
£¨1£©14C6H 80DCH £¨2£©B568H 54B7H
ÎʸóÌÐòÔÚÉÏÊöÇé¿öÏÂÖ´Ðк󣬳ÌÐòתÏòºÎ´¦£¿
½â´ð£º£¨1£©AX£½AX+BX£½14C6H+80DCH£½95A2H£»CF£½0£»ÎÞ½øÎ»£¬×ªÒÆÖÁL2£»
£¨2£©AX£½AX+BX£½B568H+54B7H£½0A1FH£»CF£½1£»ÓнøÎ»£¬¼ÌÐøÖ´ÐУ» AX£½AX-BX£½0A1FH+54B7H£½B568H£»CF£½1£»Óнè룬¼ÌÐøÖ´ÐУ» ÎÞÌõ¼þ×ªÒÆÖÁSHORTL5
10£®±àдһ¶Î³ÌÐò£¬±È½ÏÁ½¸ö5 ×Ö½ÚµÄ×Ö·û´®OLDS ºÍNEWS£¬Èç¹ûOLDS ×Ö·û´®²»Í¬ÓÚ
NEWS ×Ö·û´®£¬ÔòÖ´ÐÐNEW_LESS£¬·ñÔò˳ÐòÖ´ÐС£½â´ð£º±à³ÌÈçÏ£¬£¨ËµÃ÷£º×ó²â³ÌÐòΪ³£¹æ±à·¨£¬Á½¸ö×Ö·û´®ÔÚÒ»¸öÊý¾Ý¶ÎÖУ»ÓÒ²âµÄ³ÌÐò
ÒªÇóOLDSÔÚÊý¾Ý¶ÎÖУ¬NEWSÔÚ¸½¼Ó¶ÎÖУ¬ÀûÓô®²Ù×÷µÄÖ¸ÁîÊÇ¿ÉÐеģ© LEA SI£¬OLDS£» LEA SI£¬OLDS LEA DI£¬NEWS£» LEA DI£¬NEWS MOV CX£¬5£» MOV CX£¬5 NEXT£º MOV AL£¬[SI]£» CLD MOV BL£¬[DI]£» REPE CMPSB CMP AL£¬BL£» JNZ NEW_LESS JNZ NEW_LESS£» ¡¡ INC SI£» JMP EXIT INC DI£» NEW_LESS£º LOOP NEXT£» ¡¡ ¡¡ EXIT£º ¡¡ JMP EXIT NEW_LESS£º ¡¡
EXIT£º ¡¡
11£®ÈôÔÚÊý¾Ý¶ÎÖдÓ×Ö½Ú±äÁ¿TABLE ÏàÓ¦µÄµ¥Ôª¿ªÊ¼´æ·ÅÁË0~15 µÄƽ·½Öµ£¬ÊÔд³ö°üº¬
ÓÐXLAT Ö¸ÁîµÄÖ¸ÁîÐòÁвéÕÒN£¨0~15£©µÄƽ·½¡££¨ÉèN µÄÖµ´æ·ÅÔÚCL ÖУ© ½â´ð£º
MOV BX£¬OFFSET TABLE£»LEA BX£¬TABLE MOV CL£¬N MOV AL£¬CL XLAT
12£®ÓÐÁ½¸öË«×ÖÊý¾Ý´®·Ö±ð´æ·ÅÔÚASC1 ºÍASC2 ÖУ¨µÍ×ַŵ͵ØÖ·£©£¬ÇóËüÃǵIJ½á¹û
·ÅÔÚASC3 ÖУ¨µÍ×ַŵ͵ØÖ·£©¡£ ASC1 DW 578£¬400 ASC2 DW 694£¬12 ASC3 DW £¿£¬£¿ ½â´ð£º±à³ÌÈçÏ£¬
LEA SI£¬ASC1 LEA DI£¬ASC2 LEA BX£¬ASC3 MOV CX£¬2 CLC
NEXT£º MOV AX£¬[SI] MOV DX£¬[DI] SBB AX£¬DX MOV [BX]£¬AX INC SI INC SI INC DI
INC DI INC BX INC BX
LOOP NEXT
CH03 »ã±àÓïÑÔ³ÌÐòÉè¼Æ ϰÌâÓë˼¿¼Ìâ
1£®ÏÂÁÐÓï¾äÔÚ´æ´¢Æ÷ÖзֱðΪ±äÁ¿·ÖÅä¶àÉÙ×ֽڿռ䣿²¢»³ö´æ´¢¿Õ¼äµÄ·ÖÅäͼ¡£
VAR1 DB 10£¬2
VAR2 DW 5 DUP£¨£¿£©£¬0
VAR3 DB ?HOW ARE YOU£¿?£¬3 DUP£¨1£¬2£© VAR4 DD -1£¬1£¬0
½â´ð£º×Ö½Ú¿Õ¼ä----VAR1£º2£»VAR2£º12£»VAR3£º20£»VAR4£º12¡£ ´æ´¢¿Õ¼äµÄ·ÖÅäͼ£º
DS£º0000 0A 02 00 00 00 00 00 00¡ª00 00 00 00 00 00 48 4F 0010 57 20 20 41 52 45 20 20¡ª59 4F 55 3F 01 02 01 02 0020 01 02 FF FF FF FF 01 00¡ª00 00 00 00 00 00
2£®¼Ù¶¨VAR1 ºÍVAR2 Ϊ×Ö±äÁ¿£¬LAB Ϊ±êºÅ£¬ÊÔÖ¸³öÏÂÁÐÖ¸ÁîµÄ´íÎóÖ®´¦¡£
£¨1£©ADD VAR1£¬VAR2 £¨2£©SUB AL£¬VAR1 £¨3£©JMP LAB[CX] £¨4£©JNZ VAR1
£¨5£© MOV [1000H]£¬100 £¨6£©SHL AL£¬ 4 ½â´ð£º(1)Á½¸ö²Ù×÷ÊýÖÐÖÁÉÙÓÐÒ»¸öΪ¼Ä´æÆ÷£» (2)AL Ϊ×Ö½Ú£¬VAR1 Ϊ×Ö±äÁ¿£¬²»Æ¥Å䣻 (3)[]Öв»ÄÜÓÃCX£¬LAB Ϊ±êºÅ£¬·Ç±äÁ¿£» (4)תÏòµØÖ·Ó¦Îª±êºÅ£¬²»ÄÜÊDZäÁ¿£» (5)Ä¿µÄ²Ù×÷ÊýµÄÀàÐͲ»È·¶¨£»
(6)SHL Ö¸ÁîÖУ¬µ±ËùÒÆÎ»Êý³¬¹ý1 ʱ£¬±ØÐëÓÃCL »òCX À´È¡´úËùÒÆÎ»Êý¡£ 3£®¶ÔÓÚÏÂÃæµÄ·ûºÅ¶¨Ò壬ָ³öÏÂÁÐÖ¸ÁîµÄ´íÎó¡£ A1 DB £¿ A2 DB 10 K1 EQU 1024
£¨1£© MOV K1£¬AX £¨2£©MOV A1£¬AX £¨3£©CMP A1£¬A2 £¨4£©K1 EQU 2048
½â´ð£º(1)K1 Ϊ³£Á¿£¬²»ÄÜÓÃMOV Ö¸Áֵ£» (2)A1 Ϊ×Ö½Ú£¬AX Ϊ×Ö±äÁ¿£¬²»Æ¥Å䣻 (3)A1 䶨Ò壬ÎÞ·¨×ö±È½ÏÖ¸Á
(4)K1 ÖØÐ¸³ÖµÇ°£¬±ØÐëÓÃPURGE ÊÍ·Å¡£ 4£®Êý¾Ý¶¨ÒåÓï¾äÈçÏÂËùʾ:
FIRST DB 90H£¬5FH£¬6EH£¬69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?)
×ÔFIRST µ¥Ôª¿ªÊ¼´æ·ÅµÄÊÇÒ»¸öËÄ×Ö½ÚµÄÊ®Áù½øÖÆÊý(µÍλ×Ö½ÚÔÚǰ),ÒªÇó: ±àÒ»¶Î³ÌÐò½«Õâ¸öÊý×óÒÆÁ½Î»ºó´æ·Åµ½×ÔSECOND ¿ªÊ¼µÄµ¥Ôª,ÓÒÒÆÁ½Î»ºó´æ·Åµ½×Ô
THIRD ¿ªÊ¼µÄµ¥Ôª¡£(×¢Òâ±£ÁôÒÆ³ö²¿·Ö) ½â´ð£º DATA SEGMENT
FIRST DB 90H£¬5FH£¬6EH£¬69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS£ºCODE£¬DS£ºDATA START£ºMOV AX£¬DATA MOV DS£¬AX LEA SI£¬FIRST LEA DI£¬SECOND MOV CX£¬2 CLC
£»×óÒÆ2 λ
MOV AX£¬[SI]£»AX=5F90H ΪµÍÊ®ÁùλÊý¾Ý INC SI INC SI
MOV DX£¬[SI]£»DX=696EH Ϊ¸ßÊ®ÁùλÊý¾Ý PUSH DX£»±£´æÔÓеĸßÊ®ÁùλÊý¾Ý PUSH AX£»±£´æÔÓеĵÍÊ®ÁùλÊý¾Ý
ROL DX£¬CL£»½«¸ßλÊý¾Ý²»´ø½øÎ»Ñ»·×óÒÆÁ½Î»£¬¼´¸ß2 λÊý¾ÝÔÚDL µÄµÍ2 λ
AND DL£¬03H£»ÈÃDL Öнö±£´æÒƳöµÄ¸ß2 λÊý¾Ý
MOV [DI+4] £¬DL£»½«ÒƳöµÄ¸ß2 λÊý¾Ý·ÅÈëSECOND ÖеÄ×î¸ßµ¥ÔªÖÐ
ROL AX£¬CL£»½«µÍλÊý¾Ý²»´ø½øÎ»Ñ»·×óÒÆÁ½Î»£¬¼´AX µÄ¸ß2 λÔÚAL µÄµÍ2 λ
AND AL£¬03H£»ÈÃAL Öнö±£´æÒƳöµÄAX ¸ß2 λÊý¾Ý MOV BL £¬AL£»½«AL ÖеÄÊý¾Ý·ÅÈëBL Öб£´æ POP AX£»µ¯³öÔÓеĵÍÊ®ÁùλÊý¾Ý POP DX£»µ¯³öÔÓеĸßÊ®ÁùλÊý¾Ý
SHL DX£¬CL£»½«¸ßλÊý¾ÝËãÊõÂß¼×óÒÆ2 λ SHL AX£¬CL£»½«µÍλÊý¾ÝËãÊõÂß¼×óÒÆ2 λ
OR DL£¬BL£»½«AX ÖÐÒÆ³öµÄ¸ß2 λÊý¾Ý·ÅÈëDX µÄµÍ2 λ
MOV [DI] £¬AX MOV [DI+2] £¬DX £»ÓÒÒÆ2 λ LEA SI£¬FIRST LEA DI£¬THIRD MOV CX£¬2 CLC
MOV AX£¬[SI]£»AX=5F90H ΪµÍÊ®ÁùλÊý¾Ý INC SI INC SI
MOV DX£¬[SI]£»DX=696EH Ϊ¸ßÊ®ÁùλÊý¾Ý
PUSH DX£»±£´æÔÓеĸßÊ®ÁùλÊý¾ÝPUSH AX£»±£´æÔÓеĵÍÊ®ÁùλÊý¾Ý ROR AX£¬CL£»½«µÍλÊý¾Ý²»´ø½øÎ»Ñ»·ÓÒÒÆÁ½Î»£¬¼´µÍ2 λÊý¾ÝÔÚAH µÄ¸ß2 λ
AND AH£¬0C0H£»ÈÃAH Öнö±£´æÒƳöµÄµÍ2 λÊý¾Ý PUSH CX MOV CX£¬6 SHR AH£¬CL POP CX
MOV [DI] £¬AH£»½«ÒƳöµÄµÍ2 λÊý¾Ý·ÅÈëTHIRD ÖеÄ×îµÍµ¥ÔªÖÐ
ROR DX£¬CL£»½«µÍλÊý¾Ý²»´ø½øÎ»Ñ»·×óÒÆÁ½Î»£¬¼´AX µÄ¸ß2 λÔÚAL µÄµÍ2 λ
AND DH£¬0C0H£»ÈÃDH Öнö±£´æÒƳöµÄDX µÍ2 λÊý¾Ý MOV BL £¬DH£»½«DH ÖеÄÊý¾Ý·ÅÈëBL Öб£´æ POP AX£»µ¯³öÔÓеĵÍÊ®ÁùλÊý¾Ý POP DX£»µ¯³öÔÓеĸßÊ®ÁùλÊý¾Ý
SHR DX£¬CL£»½«¸ßλÊý¾ÝËãÊõÂß¼×óÒÆ2 λ SHR AX£¬CL£»½«µÍλÊý¾ÝËãÊõÂß¼×óÒÆ2 λ
OR AH£¬BL£»½«DX ÖÐÒÆ³öµÄµÍ2 λÊý¾Ý·ÅÈëAX µÄ¸ß2 λ MOV [DI+1] £¬AX MOV [DI+3] £¬DX MOV AH£¬4CH INT 21H CODE ENDS END START
5£®£¨14£©ÔÚµ±Ç°Êý¾ÝÇø´Ó400H ¿ªÊ¼µÄ256 ¸öµ¥ÔªÖдæ·Å×ÅÒ»×éÊý¾Ý£¬ÊÔ±à³ÌÐò½«ËüÃÇ˳Ðò
°áÒÆµ½´ÓA000H ¿ªÊ¼µÄ˳Ðò256 ¸öµ¥ÔªÖС£ ½â´ð£º
DATA SEGMENT ORG 400H
DAT1 DB ...;256 DUP (?) ORG 0A000H
DAT2 DB ...;256 DUP (?) DATA ENDS
;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX ;CH3-14
LEA SI,DAT1 LEA DI,DAT2 MOV CX,128
AGAIN: MOV AL,[SI] MOV [DI],AL INC SI INC DI
LOOP AGAIN
;CH3-15,½«Á½¸öÊý¾Ý¿éÖð¸öµ¥Ôª½øÐбȽϣ¬ÈôÓдíBL=00H£¬·ñÔòBL=FFH LEA SI,DAT1 LEA DI,DAT2 MOV CX,128
NEXT: MOV AL,[SI] MOV BL,[DI] CMP AL,BL JNZ ERROR INC SI INC DI
LOOP NEXT MOV BL,0FFH JMP EXIT
ERROR: MOV BL,00H EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
6£®ÊÔ±à³ÌÐò½«µ±Ç°Êý¾ÝÇø´ÓBUFF ¿ªÊ¼µÄ4K ¸öµ¥ÔªÖоùдÈë55H£¬²¢Öð¸öµ¥Ôª¶Á³ö±È½Ï£¬
¿´Ð´ÈëµÄÓë¶Á³öµÄÊÇ·ñÒ»Ö¡£ÈôÈ«¶Ô£¬Ôò½«ERR µ¥ÔªÖÃ0H£»Èç¹ûÓÐ´í£¬Ôò½«ERR µ¥Ôª ÖÃFFH¡£ ½â´ð£º
DATA SEGMENT
BUFF DB 1000H DUP(?) ERR DB ? DATA ENDS ;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX
;½«55H ÒÀ´Î·ÅÈëBUFF ¿ªÊ¼µÄ4K ¸öµ¥Ôª LEA SI,BUFF
MOV CX,1000H MOV AL,55H NTXT: MOV [SI],AL INC SI
LOOP NEXT
;È¡³öÓë55H ±È½Ï£¬È«¶ÔÔòERR=0£¬·ñÔòERR=FFH LEA DI,BUFF LEA SI,ERR MOV CX,1000H
NEXT1: MOV AL,[DI] INC DI
CMP AL,55H
JNZ ERROR£»ÈôÓÐÒ»¸ö²»Í¬£¬¼´ÖÃERR=FFH LOOP NEXT1 MOV AL,00H
MOV [SI],AL£»È«±È½ÏÍêÎÞ´í£¬ÔòÖÃERR=0 JMP EXIT
ERROR: MOV AL,0FFH MOV [SI],AL ;·µ»ØDOS
EXIT: MOV AH,4CH INT 21H CODE ENDS END START END
7£®ÔÚÉÏÌâÖУ¬Èç¹û·¢ÏÖÓдíʱ£¬ÒªÇóÔÚERR µ¥ÔªÖдæ·Å³ö´íµÄÊý¾Ý¸öÊý£¬Ôò³ÌÐò¸ÃÈçºÎÐÞ ¸Ä£¿ ½â´ð£º
DATA SEGMENT
BUFF DB 1000H DUP(?) ERR DW ? DATA ENDS ;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
;½«55H ÒÀ´Î·ÅÈëBUFF ¿ªÊ¼µÄ4K ¸öµ¥Ôª LEA SI,BUFF MOV CX,1000H MOV AL,55H
NTXT: MOV [SI],AL INC SI
LOOP NEXT
;È¡³öÓë55H ±È½ÏLEA DI,BUFF LEA SI,ERR MOV DX,0000H MOV CX,1000H
NEXT1: MOV AL,[DI] INC DI
CMP AL,55H
JZ NEXT2£»ÈôÏàͬ£¬Ôò±È½ÏÏÂÒ»¸ö
INC DX£»·ñÔò½«·Å³ö´í¸öÊýµÄDX ¼Ó1 NEXT2£º LOOP NEXT1 MOV [SI],DX ;
EXIT: MOV AH,4CH INT 21H CODE ENDS END START END
8£®ÊÔ±àд³ÌÐò¶Î£¬Íê³É½«Êý¾ÝÇø´Ó0100H ¿ªÊ¼µÄÒ»´®×Ö½ÚÊý¾ÝÖð¸ö´ÓF0H ¶Ë¿ÚÊä³ö£¬ÒÑÖª
Êý¾Ý´®ÒÔ0AH Ϊ½áÊø·û¡£ ½â´ð£º
DATA SEGMENT ORG 0100H
DATA1 DB N DUP(?) DATA ENDS ;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
;½«DATA1 Êý¾Ý´®ÖеÄÊý¾ÝÈ¡³ö²¢´ÓF0H ¶Ë¿ÚÖÐÊä³ö LEA SI,DATA1 MOV CX,N MOV BL,0AH
NTXT: MOV AL,[SI] CMP AL,BL JZ EXIT
OUT 0F0H,AL INC SI
LOOP NEXT ;·µ»ØDOS
EXIT: MOV AH,4CH INT 21H
CODE ENDS END START END
9£®(24)ÄÚ´æÖÐÒÔFIRST ºÍSECOND ¿ªÊ¼µÄµ¥ÔªÖÐ·Ö±ð´æ·Å×ÅÁ½¸ö4 λÓÃѹ
ËõBCD Âë±íʾ
µÄÊ®½øÖÆÊý, µÍλÔÚǰ¡£±à³ÌÐòÇóÕâÁ½¸öÊýµÄºÍ£¬ÈÔÓÃѹËõBCD Âë±íʾ, ²¢´æµ½ÒÔTHIRD ¿ªÊ¼µÄµ¥Ôª¡£ ½â´ð£º
DATA SEGMENT FIRST DW 3412H SECOND DW 7856H THIRD DB ?,?,? DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,FIRST LEA DI,SECOND LEA BX,THIRD MOV CX,2 CLC
AGAIN: MOV AL,BYTE PTR[SI] MOV DL,BYTE PTR[DI] ADC AL,DL DAA
MOV BYTE PTR[BX],AL INC SI INC DI INC BX
LOOP AGAIN JC AA
MOV BYTE PTR[BX],0 JMP EXIT
AA: MOV BYTE PTR[BX],1 EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
10£®(27)Éè×Ö±äÁ¿µ¥ÔªA¡¢B¡¢C ´æ·ÅÓÐÈý¸öÊý£¬ÈôÈý¸öÊý¶¼²»ÎªÁ㣬ÔòÇóÈý¸öÊýµÄºÍ£¬´æ
·ÅÔÚD ÖУ»ÈôÓÐÒ»¸öΪÁ㣬Ôò½«ÆäÓàÁ½¸öÒ²ÇåÁ㣬ÊÔ±àд³ÌÐò¡£ ½â´ð£º
DATA SEGMENT A DB ? B DB ?
C DB ? D DW ? DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,A LEA DI,D MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL LEA SI,B MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL LEA SI,C MOV AL,[SI] CMP AL,00 JZ ZERO ADC DX,AL MOV [DI],DX JMP EXIT
ZERO: MOV AL,0 MOV A,AL MOV B,AL MOV C,AL ;
EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
11£®(16)ÊÔ±à³ÌÐò£¬Í³¼ÆÓÉTABLE ¿ªÊ¼µÄ128 ¸öµ¥ÔªÖÐËù´æ·ÅµÄ×Ö·û¡°A¡±µÄ¸öÊý£¬²¢½«½á
¹û´æ·ÅÔÚDX ÖС£ ½â´ð£º
DATA SEGMENT
TABLE DB X1,X2,...X128 DATA ENDS ;
STACK SEGMENT STACK ENDS
;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,TABLE MOV DX,0 MOV CX,128
AGAIN: MOV AL,[SI] CMP AL,'A' JNZ NEXT INC DX
NEXT: INC SI LOOP AGAIN MOV AX,4C00H INT 21H CODE ENDS END START
12£®ÊÔ±àÖÆÒ»¸ö»ã±àÓïÑÔ³ÌÐò£¬Çó³öÊ×µØÖ·ÎªDATA µÄ1000 ¸ö×ÖÊý×éÖеÄ×îСżÊý£¬²¢°Ñ
Ëü´æ·ÅÓÚMIN µ¥ÔªÖС£ ½â´ð£º
DATA SEGMENT
ARRAY DW X1,X2,...X1000
ARRAY_EVEN DW 1000 DUP(?) MIN DW ? MAX DW ? DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX
;½«Êý×éÖеÄżÊý·ÅÈëARRAY_EVEN ÖÐ LEA SI,ARRAY
LEA DI,ARRAY_EVEN MOV CX,1000
AGAIN: MOV AX,[SI] TEST AX,01h JNZ NEXT MOV [DI],AX INC DI INC DI
NEXT: INC SI INC SI
LOOP AGAIN
;ÕÒ³öARRAY_EVEN ÖеÄ×î´óÊý LEA SI,ARRAY_EVEN MOV CX,999 MOV AX,[SI] MOV BX,AX INC SI INC SI
NEXT: CMP AX,[SI] JAE LL
MOV AX,[SI] LL: INC SI INC SI
LOOP NEXT MOV MAX,AX
;ÕÒ³öARRAY_EVEN ÖеÄ×îСÊý(µÚ13 ÌâÔö¼ÓµÄ²¿·Ö) LEA SI,ARRAY_EVEN MOV CX,999 MOV AX,[SI]
MOV BX,AX INC SI INC SI
NEXT: CMP AX,[SI] JBE SS
MOV AX,[SI] SS: INC SI INC SI
LOOP NEXT MOV MIN,AX ;·µ»ØDOS
MOV AX,4C00H INT 21H CODE ENDS END START
13£®ÔÚÉÏÌâÖУ¬Èç¹ûÒªÇóͬʱÕÒ³ö×î´óºÍ×îСµÄżÊý£¬²¢°ÑËüÃÇ·Ö±ð´æ·ÅÓÚMAX ºÍMIN
µ¥ÔªÖУ¬ÊÔÍê³É³ÌÐò¡£ ½â´ð£ºÂÔ£¨¼ûµÚ12 Ì⣩¡£
14£®(28)ÔÚDATA ×ÖÊý×éÖдæ·ÅÓÐ100H ¸ö16 λ²¹ÂëÊý£¬ÊÔ±àдһ³ÌÐòÇóËüÃÇµÄÆ½¾ùÖµ£¬·Å
ÔÚAX ÖУ¬²¢Çó³öÊý×éÖÐÓжàÉÙ¸öÊýСÓÚÆ½¾ùÖµ£¬½«½á¹û´æÓÚBX ÖС£ ½â´ð£º
DATA SEGMENT
DAT DW X1,X2,...X256 DATA ENDS ;
STACK SEGMENT STACK ENDS
;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX
;½«Êý×éÖеÄ100H ¸öÊýÇóºÍºóÇ󯽾ùÖµ LEA SI,DAT MOV CX,100H CLC
MOV BX,0000 MOV DX,0000
AGAIN: MOV AX,[SI] ADD BX,AX JNC NEXT
ADC DX,1 NEXT: INC SI INC SI
LOOP AGAIN MOV CX,100H MOV AX,BX DIV CX
;ÕÒ³öDAT ÖеÄСÓÚÆ½¾ùÖµµÄ¸öÊý LEA SI,DAT MOV CX,100H MOV DX,0000H
AGAIN0:MOV BX,[SI]
CMP BX,AX£»ÓëÆ½¾ùÖµAX ±È½Ï£¬´óÓÚµÈÓÚÔòתNEXT0£¬·ñÔò½«¶ÁÊýÆ÷DX ¼Ó1
JGE NEXT0 INC DX
NEXT0: INC SI INC SI
LOOP AGAIN0 MOV BX,DX ;·µ»ØDOS
MOV AX,4C00H INT 21H CODE ENDS END START
15£®(17)±àдһ¸ö×Ó³ÌÐò£¬¶ÔAL ÖеÄÊý¾Ý½øÐÐżУÑ飬²¢½«¾¹ýУÑéµÄ½á¹û·Å»ØAL ÖС£ ½â´ð£º
DATA SEGMENT COUNT EQU 7 DATA ENDS ;
STACK SEGMENT STACK ENDS
;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX PUSH AX MOV DX,0
MOV CX,COUNT AGAIN: RCR AL,1 JNC L INC DX L: LOOP AGAIN POP AX TEST DX,01 JZ EXIT OR AL,80
EXIT: MOV AX,4C00H INT 21H
;ANOTHER METHORD JP EXIT OR AL,80H
EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
16£®(18)ÀûÓÃÉÏÌâµÄÓè³ÌÐò£¬¶ÔDATA ¿ªÊ¼µÄ256 ¸öµ¥ÔªµÄÊý¾Ý¼ÓÉÏżУÑ飬ÊÔ±à³ÌÐò¡£ ½â´ð£º
DATA SEGMENT
DAT DB ...;256 DUP (?) RESULT DB ...;256 DUP (?) NUM EQU 256 COUNT EQU 7 DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DAT LEA DI,RESULT MOV CX,NUM
NEXT: MOV AL,[SI] CALL SUB1
MOV [DI],AL;MOV [SI],AL INC SI
INC DI
LOOP NEXT MOV AX,4C00H INT 21H SUB1 PROC PUSH AX MOV DX,0
MOV CX,COUNT AGAIN: RCR AL,1 JNC L INC DX
L: LOOP AGAIN POP AX TEST DX,01 JZ QUIT OR AL,80H QUIT: RET SUB1 ENDP CODE ENDS END START
17£®(19)ÊÔ±àд³ÌÐòʵÏÖ½«¼üÅÌÊäÈëµÄСд×Öĸת»»³É´óд×Öĸ²¢Êä³ö¡£ ½â´ð£º
DATA SEGMENT
MESS DB 'THE INPUT IS NOT CORRECT.',0DH,0AH,'$' DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX
NEXT: MOV AH,01H INT 21H CMP AL,'Q' JZ EXIT
CMP AL,'a' JB ERROR CMP AL,'z' JA ERROR SUB AL,20H MOV AH,02H MOV DL,AL INT 21H JMP NEXT
ERROR: MOV AH,09H LEA DX,MESS INT 21H
JMP NEXT
EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
18£®´Ó¼üÅ̽ÓÊÕ20 ¸ö×Ö·û£¬°´¼üÈë˳Ðò²éÕÒ×î´óµÄ×Ö·û£¬²¢ÏÔʾÊä³ö¡£ ½â´ð£º
DATA SEGMENT DAT DB 20 DUP(?) DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX
;´Ó¼üÅ̽ÓÊÕ20 ¸ö×Ö·û£¬²¢ËÍDAT Öб£´æ LEA SI,DAT MOV CX,20
NEXT: MOV AH,01H INT 21H MOV [SI],AL INC SI
LOOP NEXT
;±È½Ï20 ¸ö×Ö·ûÖеÄ×î´ó×Ö·û£¬²¢·ÅÈëAL ÖÐ MOV CX,19
LEA SI,DAT MOV AL,[SI] INC SI
NEXT1: CMP AL,[SI] JAE LL
MOV AL,[SI] LL: INC SI LOOP NEXT1
;½«×î´óµÄ×Ö·ûµÄASCII ÂëÓÉAL ËÍDL ÏÔʾ MOV DL,AL MOV AH,2H INT 21H ;·µ»ØDOS
MOV AX,4C00H INT 21H CODE ENDS END START
19£®(29)±àд»ã±à³ÌÐò£¬½ÓÊÕ´Ó¼üÅÌÊäÈëµÄ10 ¸öÊý£¬ÊäÈë»Ø³µ·û±íʾ½áÊø£¬È»ºó½«ÕâЩÊý
¼ÓÃܺó´æÓÚBUFF »º³åÇøÖС£¼ÓÃܱíΪ£º
ÊäÈëÊý×Ö£º0£¬1£¬2£¬3£¬4£¬5£¬6£¬7£¬8£¬9£»ÃÜÂëÊý×Ö£º7£¬5£¬9£¬1£¬3£¬6£¬8£¬0£¬2£¬4 ½â´ð£º
DATA SEGMENT BUFF DB 10 DUP(?)
TABLE DB 7,5,9,1,3,6,8,0,2,4 DATA ENDS ;
STACK SEGMENT STACK ENDS ;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX ;
LEA DI,BUFF
NEXT: MOV AH,01H
INT 21H£»´Ó¼üÅÌÉϽÓÊÕµ¥¸ö×Ö·û
CMP AL,0AH£»Óë0AH ±È£¬ÅÐÊÇ·ñÒª½áÊø JZ EXIT
SUB AL,30H£»·ñÔò£¬½«0~9 µÄASCII Âëת»»ÎªÊ®½øÖÆÊý LEA BX,TABLE
XLAT£»Óòé±íÖ¸Áî½øÐмÓÃÜ MOV [DI],AL INC DI JMP NEXT
;Í˳ö²¢·µ»ØDOS EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
20£®(23)ÓÐÒ»¸ö100 ¸ö×Ö½ÚµÄÊý¾Ý±í£¬±íÄÚÔªËØÒѰ´´Ó´óµ½Ð¡µÄ˳ÐòÅÅÁкã¬ÏÖ¸ø¶¨Ò»ÔªËØ£¬
ÊÔ±à³ÌÐòÔÚ±íÄÚ²éÕÒ£¬Èô±íÄÚÒÑÓдËÔªËØ£¬Ôò½áÊø£»·ñÔò£¬°´Ë³Ðò½«´ËÔªËØ²åÈë±íÖÐÊʵ±
µÄλÖ㬲¢ÐÞ¸Ä±í³¤¡£ ½â´ð£º
;µ÷ÊÔʱÓÃÁËÊ®¸öÊý¾Ý,±¾³ÌÐòÒÑͨ¹ýµ÷ÊÔ DATA SEGMENT TABLE_LEN DB ? X DB 99H
TABLE DB 98H,90H,80H,70H,60H,50H,40H,30H,20H,10H;X1,X2,...,X100 COUNT EQU $-TABLE DATA ENDS ;
STACK SEGMENT STACK ENDS
;
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX
;½«Êý×éÖеÄ100H ¸öÊýÇóºÍºóÇ󯽾ùÖµ MOV DX,0000 LEA SI,TABLE MOV CX,COUNT
MOV AL,X;¼ÙÉèX Ϊ¸ø¶¨ÔªËØ ;ÔÚTABLE ÖÐÊÇ·ñÓÐÔªËØX AGAIN: MOV BL,[SI] CMP BL,AL JZ EXIT INC SI
LOOP AGAIN
;X ÔªËØ²»ÔÚ±íÖУ¬½«X ²åÈë±íÖÐÊʵ±Î»Öà LEA SI,TABLE
MOV DI,SI;DI Ϊ±íµÄÄ©µØÖ· ADD DI,COUNT-1
MOV CX,COUNT AGAIN0:MOV BL,[SI] CMP BL,AL JA NEXT0
BB: CMP DI,SI JZ AA
MOV AH,[DI]
MOV [DI+1],AH;½«±ÈX СµÄÔªËØºóÒÆÒ»Î» DEC DI JMP BB
AA: MOV [DI+1],BL MOV [DI],AL
MOV TABLE_LEN,COUNT+1 JMP EXIT
NEXT0: INC SI LOOP AGAIN0
MOV [DI+1],AL;Èô±È½Ïºó£¬X ÔªËØÎª×îС£¬Ôò·ÅÔÚ×îÄ©µ¥ÔªµÄºóÃæ£¬²¢½«±í³¤¼Ó1
MOV TABLE_LEN,COUNT+1 ;Í˳ö²¢·µ»ØDOS EXIT: MOV AX,4C00H INT 21H CODE ENDS END START
21£®(26)ÔÚµ±Ç°Êý¾Ý¶Î£¨DS£©£¬Æ«ÒƵØÖ·ÎªDATAB ¿ªÊ¼µÄ˳Ðò80 ¸öµ¥ÔªÖУ¬´æ·Å×Åij°à80
¸öͬѧijÃÅ¿¼ÊԳɼ¨¡£°´ÒªÇó±àд³ÌÐò£º
¢Ù±àд³ÌÐòͳ¼Æ¡Ý90 ·Ö£»80 ·Ö¡«89 ·Ö£»70 ·Ö¡«79 ·Ö£»60 ·Ö¡«69 ·Ö£¬£¼
60 ·ÖµÄÈËÊý¸÷
Ϊ¶àÉÙ£¬²¢½«½á¹û·ÅÔÚͬһÊý¾Ý¶Î¡¢Æ«ÒƵØÖ·ÎªBTRX ¿ªÊ¼µÄ˳Ðòµ¥ÔªÖС£ ¢ÚÊÔ±à³ÌÐò£¬Çó¸Ã°àÕâÃÅ¿ÎµÄÆ½¾ù³É¼¨Îª¶àÉÙ£¬²¢·ÅÔÚ¸ÃÊý¾Ý¶ÎµÄAVER µ¥ÔªÖС£ ½â´ð£º
£»Í³¼ÆÑ§Éú³É¼¨ DATA SEGMENT
DATAB DB X1,X2,...,X80 N EQU $-DATAB ORG 100H BTRX DW 0 S8 DW 0 S7 DW 0 S6 DW 0 S5 DW 0 ORG 110H AVER DW ? DATA ENDS £»
STACK SEGMENT STACK STA DB 20 DUP (0) TOP EQU $¡ªSTA STACK ENDS £»
CODE SEGMENT MAIN PROC FAR
ASSUME CS£ºCODE£¬ DS£ºDATA£¬ SS£ºSTACK START£º PUSH DS SUB AX£¬AX PUSH AX
MOV AX£¬DATA MOV DS£¬AX MOV CX£¬N MOV BX,0000H MOV DX,0000H
LEA SI£¬DATAB £»³É¼¨±íÊ×µØÖ· COMPARE£ºMOV AL£¬[SI] CMP AL£¬60 £»<60£¿ JL FIVE
CMP AX£¬70 £»<70? JL SIX
CMP AX£¬80 £»<80? JL SEVEN
CMP AX£¬90 £»<90? JL EIGHT INC S9 JMP CHA
EIGHT£º INC S8 JMP CHA
SEVEN£º INC S7 JMP CHA
SIX£º INC S6 JMP CHA
FIVE£º INC S5 JMP CHA CHA£º ADD BX,AL JNC NEXT ADC DX,0
NEXT: INC SI £»Ñ»·Ñ§ÉúÈËÊý LOOP COMPARE MOV AX,BX MOV CX,N
DIV CX MOV AVER,AX MOV AH,4CH INT 21H RET
MAIN ENDP CODE ENDS END START CH04 ´æ´¢ÏµÍ³ ϰÌâÓë˼¿¼Ìâ
1£®´æ´¢Æ÷µÄÄÄÒ»²¿·ÖÓÃÀ´´æ´¢³ÌÐòÖ¸Áî¼°Ïñ³£ÊýºÍ²éÕÒ±íÒ»ÀàµÄ¹Ì¶¨²»±äµÄÐÅÏ¢£¿ÄÄÒ»²¿
·ÖÓÃÀ´´æ´¢¾³£¸Ä±äµÄÊý¾Ý£¿
½â´ð£ºÖ»¶Á´æ´¢Æ÷ROM£»Ëæ»ú´æ´¢Æ÷RAM¡£
2£®ÊõÓï¡°·ÇÒ×ʧÐÔ´æ´¢Æ÷¡±ÊÇʲôÒâ˼£¿PROM ºÍEPROM ·Ö±ð´ú±íʲôÒâ˼£¿ ½â´ð£º¡°·ÇÒ×ʧÐÔ´æ´¢Æ÷¡±ÊÇÖ¸µ±Í£µçºóÐÅÏ¢»á¶ªÊ§£»PROM--¿É±à³ÌÐòµÄÖ»¶Á´æ´¢Æ÷
PROM(Programmable ROM)£¬EPROM--¿É²Á³ýµÄ¿É±à³ÌµÄÖ»¶Á´æ´¢Æ÷EPROM(Erasible
Programmable ROM)¡£
3£®Î¢ÐͼÆËã»úÖг£ÓõĴ洢Æ÷ÓÐÄÄЩ£¿ËüÃǸ÷ÓкÎÌØµã£¿·Ö±ðÊÊÓÃÓÚÄÄЩ³¡ºÏ£¿ ½â´ð£º
Ë«¼«ÐͰ뵼Ìå´æ´¢Æ÷ Ëæ»ú´æ´¢Æ÷(RAM)
MOS ´æ´¢Æ÷£¨¾²Ì¬¡¢¶¯Ì¬£©
Ö÷´æ´¢Æ÷¿É±à³ÌÖ»¶Á´æ´¢Æ÷PROM
¿É²Á³ý¿É±à³ÌÖ»¶Á´æ´¢Æ÷EPROM£¬EEPROM Ö»¶Á´æ´¢Æ÷(ROM) ÑÚĤÐÍÖ»¶Á´æ´¢Æ÷MROM ¿ì²ÁÐÍ´æ´¢Æ÷
´æ´¢Æ÷´ÅÅÌ(ÈíÅÌ¡¢Ó²ÅÌ¡¢ÅÌ×é)´æ´¢Æ÷
¸¨Öú´æ´¢Æ÷´Å´ø´æ´¢Æ÷ ¹âÅÌ´æ´¢Æ÷ »º³å´æ´¢Æ÷
4£®ÏÖ´ú¼ÆËã»úÖеĴ洢Æ÷ϵͳ²ÉÓÃÁËÄÄÈý¼¶·Ö¼¶½á¹¹£¬Ö÷ÒªÓÃÓÚ½â¾ö´æ´¢Æ÷ÖдæÔÚµÄÄÄЩ ÎÊÌ⣿
½â´ð£ºÄ¿Ç°ÔÚ¼ÆËã»úϵͳÖÐͨ³£²ÉÓÃÈý¼¶´æ´¢Æ÷½á¹¹£¬¼´Ê¹ÓøßËÙ»º³å´æ´¢Æ÷¡¢Ö÷´æ´¢Æ÷
ºÍ¸¨Öú´æ´¢Æ÷£¬ÓÉÕâÈýÕß¹¹³ÉÒ»¸öͳһµÄ´æ´¢ÏµÍ³¡£´ÓÕûÌå¿´£¬ÆäËٶȽӽü¸ßËÙ»º´æµÄËÙ
¶È£¬ÆäÈÝÁ¿½Ó½ü¸¨´æµÄÈÝÁ¿£¬¶øÎ»³É±¾Ôò½Ó½üÁ®¼ÛÂýËٵĸ¨´æÆ½¾ù¼Û¸ñ¡£Èý¼¶½á¹¹Ö÷ÒªÓÃ
ÓÚ½â¾öËÙ¶È¡¢ÈÝÁ¿ºÍ³É±¾µÄÎÊÌâ¡£
5£®ÊԱȽϾ²Ì¬RAM ºÍ¶¯Ì¬RAM µÄÓÅȱµã£¬²¢ËµÃ÷ÓкÎÖÖ·½·¨¿É½â¾öµôµçʱ¶¯Ì¬RAM ÖÐ ÐÅÏ¢µÄ±£»¤¡£
½â´ð£º¾²Ì¬RAM----´æ´¢Ò»Î»ÐÅÏ¢µÄµ¥Ôªµç·¿ÉÒÔÓÃË«¼«ÐÍÆ÷¼þ¹¹³É£¬Ò²¿ÉÓÃMOS Æ÷¼þ¹¹
³É¡£Ë«¼«ÐÍÆ÷¼þ¹¹³ÉµÄµç·´æÈ¡Ëٶȿ죬µ«¹¤ÒÕ¸´ÔÓ£¬¼¯³É¶ÈµÍ£¬¹¦ºÄ´ó£¬Ò»°ã½ÏÉÙʹ
ÓÃÕâÖֵ緣¬¶ø²ÉÓÃMOS Æ÷¼þ¹¹³ÉµÄµç·¡£¾²Ì¬RAM µÄµ¥Ôªµç·ͨ³£ÊÇÓÉ6 ¸öMOS
¹Ü×Ó×é³ÉµÄË«ÎÈ̬´¥·¢Æ÷µç·£¬¿ÉÒÔÓÃÀ´´æ´¢ÐÅÏ¢¡°0¡±»òÕß¡°1¡±£¬Ö»Òª²»µôµç£¬¡°0¡±
»ò¡°1¡±×´Ì¬ÄÜÒ»Ö±±£³Ö£¬³ý·ÇÖØÐÂͨ¹ýд²Ù×÷дÈëеÄÊý¾Ý¡£Í¬Ñù¶Ô´æ´¢Æ÷µ¥ÔªÐÅÏ¢
µÄ¶Á³ö¹ý³ÌÒ²ÊÇ·ÇÆÆ»µÐԵ쬶Á³ö²Ù×÷ºó£¬Ëù±£´æµÄÐÅÏ¢²»±ä¡£Ê¹Óþ²Ì¬RAM µÄÓŵã
ÊÇ·ÃÎÊËٶȿ죬·ÃÎÊÖÜÆÚ´ï20~40ns¡£¾²Ì¬RAM ¹¤×÷Îȶ¨£¬²»ÐèÒª½øÐÐˢУ¬Íⲿµç
·¼òµ¥£¬µ«»ù±¾´æ´¢µ¥ÔªËù°üº¬µÄ¹Ü×ÓÊýÄ¿½Ï¶à£¬ÇÒ¹¦ºÄÒ²½Ï´ó£¬ËüÊʺÏÔÚСÈÝÁ¿´æ´¢ Æ÷ÖÐʹÓá£
¶¯Ì¬RAM----Ó뾲̬RAM Ò»Ñù£¬ÓÉÐí¶à»ù±¾´æ´¢µ¥Ôª°´ÐкÍÁÐÅÅÁÐ×é³É¾ØÕó¡£×î¼òµ¥
µÄ¶¯Ì¬RAM µÄ»ù±¾´æ´¢µ¥ÔªÊÇÒ»¸ö¾§Ìå¹ÜºÍÒ»¸öµçÈÝ£¬Òò¶ø¼¯³É¶È¸ß£¬³É±¾µÍ£¬ºÄµç
ÉÙ£¬µ«ËüÊÇÀûÓõçÈÝ´æ´¢µçºÉÀ´±£´æÐÅÏ¢µÄ£¬µçÈÝͨ¹ýMOS ¹ÜµÄÕ¤¼«ºÍÔ´¼«»á»ºÂý·Å
µç¶ø¶ªÊ§ÐÅÏ¢£¬±ØÐ붨ʱ¶ÔµçÈݳäµç£¬Ò²³ÆË¢Ð¡£ÁíÍ⣬ΪÁËÌá¸ß¼¯³É¶È£¬¼õÉÙÒý½ÅµÄ
·â×°Êý£¬DRAM µÄµØÖ·Ïß·Ö³ÉÐеØÖ·ºÍÁеØÖ·Á½²¿·Ö£¬Òò´Ë£¬ÔÚ¶Ô´æ´¢Æ÷½øÐзÃÎÊʱ£¬
×ÜÊÇÏÈÓÉÐеØÖ·Ñ¡Í¨ÐźÅRAS °ÑÐеØÖ·ËÍÈëÄÚ²¿ÉèÖõÄÐеØÖ·Ëø´æÆ÷£¬ÔÙÓÉÁÐ
µØÖ·Ñ¡
ͨÐźÅCAS °ÑÁеØÖ·ËÍÈëÁеØÖ·Ëø´æÆ÷£¬²¢ÓɶÁ/дÐźſØÖÆÊý¾ÝµÄ¶Á³ö»òдÈë¡£ËùÒÔ
ˢк͵ØÖ·Á½´Î´òÈëÊÇDRAM оƬµÄÖ÷ÒªÌØµã¡£¶¯Ì¬RAM ÐèÒªÅäÖÃË¢ÐÂÂß¼µç·£¬
ÔÚË¢ÐÂÖÜÆÚÖУ¬´æ´¢Æ÷²»ÄÜÖ´ÐжÁ/д²Ù×÷£¬µ«ÓÉÓÚËüµÄµ¥Æ¬ÉϵĸßλÃܶȣ¨µ¥¹Ü¿É×é
³É£©ºÍµÍ¹¦ºÄ£¨Ã¿¸ö´æ´¢µ¥Ôª¹¦ºÄΪ0.05mw£¬¶ø¾²Ì¬RAM Ϊ0.2mw£©£¬¼°¼Û¸ñµÍÁ®µÈ
Óŵ㣬ʹ֮ÔÚ×é³É´óÈÝÁ¿´æ´¢Æ÷ʱ×÷ΪÖ÷ҪʹÓÃÆ÷¼þ¡£
6£® ¼ÆËã»úµÄµçÔ´µôµçºóÔÙ½Óµçʱ£¨ÏµÍ³ÖÐÎÞµôµç±£»¤×°Öã©£¬´æ´¢ÔÚ¸÷Àà´æ´¢Æ÷ÖеÄÐÅÏ¢
ÊÇ·ñÈÔÄܱ£´æ£¿ÊÔ´Ó¸÷Àà´æ´¢Æ÷µÄ»ù±¾ÔÀíÉÏÀ´·ÖÎö˵Ã÷¡£ ½â´ð£º
7£® ʲôÊÇ´æ´¢Æ÷µÄλÀ©³äºÍ×ÖÀ©³ä·½Ê½£¿ËüÃÇ·Ö±ðÓÃÔÚʲô³¡ºÏ£¿
½â´ð£ºÎ»À©³ä--Èç¹û´æ´¢Æ÷оƬµÄÈÝÁ¿Âú×ã´æ´¢Æ÷ϵͳµÄÒªÇ󣬵«Æä×Ö³¤Ð¡ÓÚ´æ´¢Æ÷ϵͳµÄ
ÒªÇó£¬Õâʱ£¬¾ÍÐèÒªÓÃ¶àÆ¬ÕâÑùµÄоƬͨ¹ýλÀ©³äµÄ·½·¨À´Âú×ã´æ´¢Æ÷ϵͳ¶Ô×Ö³¤µÄÒªÇó¡£
×ÖÀ©³ä--Èç¹û´æ´¢Æ÷оƬµÄ×Ö³¤·ûºÏ´æ´¢Æ÷ϵͳµÄÒªÇ󣬵«ÆäÈÝÁ¿Ì«Ð¡£¬¾ÍÐèҪʹÓÃ¶àÆ¬Õâ
ÑùµÄоƬͨ¹ý×ÖÀ©³ä(»òÈÝÁ¿À©³ä)µÄ·½·¨À´Âú×ã´æ´¢Æ÷ϵͳ¶ÔÈÝÁ¿µÄÒªÇó¡£ 8£® ÒªÓÃ64K¡Á1 µÄоƬ×é³É64K¡Á8 µÄ´æ´¢Æ÷ÐèÒª¼¸Æ¬Ð¾Æ¬£¿ ÒªÓÃ16K¡Á8 µÄоƬ×é³É64K¡Á8 µÄ´æ´¢Æ÷ÐèÒª¼¸Æ¬Ð¾Æ¬£¿ ½â´ð£º8 Ƭ£»4 Ƭ¡£
9£® ÊÔ»³öÈÝÁ¿Îª4K¡Á8 µÄRAM Á¬½Óͼ£¨CPU ÓÃ8088£¬RAM ÓÃ2114¡ª1K*4£©£¬ÒªÇóRAM
µØÖ·´Ó0400H ¿ªÊ¼£¬²¢Ð´³ö¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡£ ½â´ð£ºµØÖ··ÖÅ䷶Χ£º C B A ¶Ë¿ÚµØÖ·
12 13 14 15 A A A A 8 9 10 11 A A A A 4 5 6 7 A A A A 0 1 2 3 A A A A 0 0 0 0 0 0 0¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 0 y 0000H~03F FH
0 0 0 0 0 0 1¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 1 y 0400H~07F FH
0 0 0 0 0 1 0¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 2 y 0800H~0B FFH
0 0 0 0 0 1 1¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 3 y 0C00H~0F
FFH 0 0 0 0 1 0 0¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 4 y 1000H~13F
FH
0 0 0 0 1 0 1¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 5 y 1400H~17F FH
0 0 0 0 1 1 0¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 6 y 1800H~1B FFH
0 0 0 0 1 1 1¡Á¡Á ¡Á¡Á¡Á¡Á ¡Á¡Á¡Á¡Á 7 y 1C00H~1F FFH
10£® ÊÔ»³öÈÝÁ¿Îª12K¡Á8 µÄROM Á¬½Óͼ£¨CPU ÓÃ8088£¬EPROM ÓÃ2716¡ª2K*8£©£¬
²¢Ð´³ö¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡£ ½â´ð£º
11£® ÔÚÉÏÌâ»ù´¡ÉÏ£¬ÈôÒªÇóROM µØÖ·Çø´Ó1000H ¿ªÊ¼£¬Ó²¼þÉè¼Æ¸ÃÈçºÎÐ޸ģ¿²¢Ð´³ö
¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡£ÈôÒªÇóROM µØÖ·Çø´ÓC000H ¿ªÊ¼£¬Ó²¼þÉè¼ÆÓÖ¸ÃÈçºÎÐ޸ģ¿
²¢Ð´³ö¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡£ ½â´ð£º
12£®Ò»Ì¨8 λ΢»úϵͳ£¨CPU Ϊ8088£©ÐèÀ©Õ¹ÄÚ´æ16K£¬ÆäÖÐROM Ϊ8K£¬RAM Ϊ8K¡£
ROM Ñ¡ÓÃEPROM2716£¬RAM Ñ¡ÓÃ2114£¬µØÖ·¿Õ¼ä´Ó0000H ¿ªÊ¼£¬ÒªÇóROM Ôڵ͵Ø
Ö·£¬RAM ÔڸߵØÖ·£¬Á¬Ðø´æ·Å¡£ÊÔ»³ö´æ´¢Æ÷×鹹ͼ£¬²¢Ð´³ö¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡£ ½â´ð£º
13£®ÊÔ»³öÈÝÁ¿Îª32K¡Á8 µÄROMÁ¬½Óͼ£¨CPUÓÃ8088£¬ ROMµØÖ·Çø´Ó8000H¿ªÊ¼£©£¬²¢
д³ö¸÷оƬµÄµØÖ··ÖÅ䷶Χ¡££¨EPROMÓÃ8K¡Á8 µÄ2764£¬µØÖ·ÏߣºA0¡«A12£¬Êý¾ÝÏߣº
O0¡«O7, Ƭѡ£º CE £¬Êä³öÔÊÐí£º * £©¡£ ½â´ð£º
14£®Ê²Ã´ÊǸßËÙ»º³å´æ´¢Æ÷£¿ÔÚ΢»úÖÐʹÓøßËÙ»º³å´æ´¢Æ÷µÄ×÷ÓÃÊÇʲô£¿ ½â´ð£º¸ßËÙ»º³å´æ´¢Æ÷--£¬½â¾öËٶȺͳɱ¾µÄ¹ØÏµ¡£
15£®ºÎν¸ßËÙ»º³å´æ´¢Æ÷µÄÃüÖУ¿ÊÔ˵Ã÷Ö±½ÓÓ³Ïñ¡¢È«ÏàÁªÓ³Ïñ¡¢×éÏàÁªÓ³ÏñµÈµØÖ·Ó³Ïñ·½
ʽµÄ»ù±¾¹¤×÷ÔÀí¡£
½â´ð£ºCache ¿ØÖÆÆ÷½«À´×ÔCPU µÄÊý¾Ý¶ÁдÇëÇó£¬×ªÏòCache ´æ´¢Æ÷£¬Èç¹ûÊý¾Ý¿ìÒÑÔÚCache ÖУ¬³ÆÎªÒ»´ÎÃüÖС£
Ö±½ÓÓ³Ïó·½Ê½¡ªÊÇÿ¸öÖ÷´æµØÖ·Ó³Ïóµ½Cache ÖеÄÒ»¸öÖ¸¶¨µØÖ·µÄ·½Ê½³ÆÎªÖ±½ÓÓ³Ïó¡£
È«ÏàÁªÓ³Ïó·½Ê½--ÊÇ×îÁé»îµ«³É±¾×î¸ßµÄÒ»ÖÖ·½Ê½£¬Èçͼ4-26 Ëùʾ£¬ËüÔÊÐíÖ÷´æÖеÄÿ
Ò»¸ö×Ö¿éÓ³Ïóµ½Cache ´æ´¢Æ÷µÄÈκÎÒ»¸ö×Ö¿éλÖÃÉÏ£¬Ò²ÔÊÐí´ÓȷʵÒѱ»Õ¼ÂúµÄCache
´æ´¢Æ÷ÖÐÌæ»»³öÈκÎÒ»¸ö¾É×Ö¿é¡£
×éÏàÁªÓ³Ïó·½Ê½--ÊÇÈ«ÏàÁªÓ³ÏóºÍÖ±½ÓÓ³ÏóµÄÒ»ÖÖÕÛÖÔ·½°¸¡£ÕâÖÖ·½·¨½«´æ´¢¿Õ¼ä·Ö³É
Èô¸É×飬¸÷×éÖ®¼äÊÇÖ±½ÓÓ³Ï󣬶ø×éÄÚ¸÷¿éÖ®¼äÔòÊÇÈ«ÏàÁªÓ³Ïó¡£
16£®Ê²Ã´ÊÇÐéÄâ´æ´¢Æ÷£¿ËüµÄ×÷ÓÃÊÇʲô£¿ ½â´ð£ºÐéÄâ´æ´¢Æ÷Êǽ¨Á¢ÔÚÖ÷´æ-¸¨´æÎïÀí½á¹¹»ù´¡Ö®ÉÏ£¬Óɸ½¼ÓÓ²¼þ×°Öü°²Ù×÷ϵͳ´æ´¢
¹ÜÀíÈí¼þ×é³ÉµÄÒ»ÖÖ´æ´¢Ìåϵ£¬Ëü½«Ö÷´æºÍ¸¨´æµÄµØÖ·¿Õ¼äͳһ±àÖ·£¬ÐγÉÒ»¸öÅÓ´óµÄ
´æ´¢¿Õ¼ä¡£ÔÚÕâ¸ö´ó¿Õ¼äÀÓû§×ÔÓɱà³Ì£¬ÍêÈ«²»±Ø¿¼ÂdzÌÐòÔÚÖ÷´æÊÇ·ñ×°µÃÏ£¬»ò
Õß·ÅÔÚ¸¨´æµÄ³ÌÐò½«À´ÔÚÖ÷´æÖеÄʵ¼ÊλÖᣱàºÃµÄ³ÌÐòÓɼÆËã»ú²Ù×÷ϵͳװÈ븨Öú´æ
´¢Æ÷£¬³ÌÐòÔËÐÐʱ£¬¸½¼ÓµÄ¸¨ÖúÓ²¼þ»ú¹¹ºÍ´æ´¢¹ÜÀíÈí¼þ»á°Ñ¸¨´æµÄ³ÌÐòÒ»¿é¿é×Ô¶¯µ÷
ÈëÖ÷´æÓÉCPU Ö´ÐУ¬»ò´ÓÖ÷´æµ÷³ö¡£ CH05 ¶¨Ê±Óë¼ÆÊý ϰÌâÓë˼¿¼Ìâ
1£®Ê²Ã´½Ð¶Ë¿Ú? ¶Ë¿Úͨ³£ÓÐÄļ¸ÖÖ? ¸÷ÓÐÊ²Ã´ÌØµã£¿
½â´ð£ºÎªÁËÌṩCPU ÓëÀ©Õ¹²¿¼þºÍ½Ó¿Úµç·ֱ½Ó½øÐвÙ×÷µÄ¡°Í¨µÀ¡±£¬Ã¿¸ö²¿¼þ»ò½Ó¿ÚÄÚ²¿
¶¼°üº¬ÓÐÒ»×é¼Ä´æÆ÷£¬ÕâЩ¼Ä´æÆ÷ͨ³£³ÆÎª¶Ë¿Ú£¬Ã¿¸ö¶Ë¿ÚÓÐÒ»¸ö¶Ë¿ÚµØÖ·¡£µ±CPU ÓëËü
ÃǽøÐÐͨÐÅʱ£¬²»Í¬µÄÐÅϢͨ¹ý²»Í¬µÄ¶Ë¿ÚµØÖ·Ó벻ͬµÄ¼Ä´æÆ÷½øÐн»»¥¡£ ¶Ë¿Úͨ³£·ÖΪÈýÀࣺÓÃÀ´´«ÊäÊý¾ÝµÄ³ÆÎªÊý¾Ý¶Ë¿Ú£»ÓÃÀ´´æ·ÅÉ豸»òÕß²¿¼þ״̬µÄ³ÆÎª
״̬¶Ë¿Ú£»ÓÃÀ´´æ·ÅCPU ·¢³öµÄÃüÁîµÄ³ÆÎª¿ØÖƶ˿ڡ£CPU ͨ¹ýÊý¾Ý¶Ë¿ÚÍê³ÉÊý¾Ý´«Ê䣬
Òò´Ë£¬Êý¾Ý¶Ë¿ÚÒ»°ãÊǿɶÁ¿ÉдµÄ£»CPU ͨ¹ý״̬¶Ë¿Ú¿ÉÒÔ¼ì²âÍâÉèºÍ½Ó¿Ú²¿¼þµ±Ç°µÄ×´
̬£¬Òò´Ë£¬×´Ì¬¶Ë¿ÚÒ»°ãÊÇÖ»¶ÁµÄ£»CPU ͨ¹ý¿ØÖƶ˿ڴ«ÊäÃüÁîÒÔ±ã¿ØÖÆ½Ó¿ÚºÍÉ豸µÄ¶¯
×÷£¬Òò´Ë£¬¿ØÖƶ˿ÚÒ»°ãÊÇֻдµÄ¡£
2£®ÊÔ˵Ã÷8253 µÄÄÚ²¿½á¹¹°üÀ¨ÄöÖ÷Òª¹¦ÄÜÄ£¿é£¿
½â´ð£º(1) Êý¾Ý×ÜÏß»º³åÆ÷¡£ÕâÊÇ8253 ÓëCPU Êý¾Ý×ÜÏßÁ¬½ÓµÄ8 λ¡¢Ë«Ïò¡¢Èý̬»º³åÆ÷¡£
CPU ÓÃÊäÈëÊä³öÖ¸Áî¶Ô8253 ½øÐжÁдµÄËùÓÐÐÅÏ¢¶¼ÊÇͨ¹ý¸Ã»º³åÆ÷´«Ë͵ģ¬ÄÚÈݰüÀ¨£º
. CPU ÔÚ³õʼ»¯±à³ÌʱдÈë8253 µÄ¿ØÖÆ×Ö¡£ . CPU Ïò8253 µÄijһͨµÀдÈëµÄ¼ÆÊýÖµ¡£ . CPU ´Óijһ¸öͨµÀ¶ÁÈ¡µÄ¼ÆÊýÖµ¡£
(2) ¶Á/д¿ØÖÆÂß¼¡£ÕâÊÇ8253 ÄÚ²¿²Ù×÷µÄ¿ØÖƲ¿·Ö¡£Ëü½ÓÊÕÊäÈëµÄÐźţ¨ CS ¡¢WR ¡¢
RD ¡¢A1¡¢A0£©£¬ÒÔʵÏÖÆ¬Ñ¡¡¢ÄÚ²¿Í¨µÀÑ¡Ôñ£¨¼û±í5-1£©ÒÔ¼°¶ÔÏà¹Ø¶Ë¿ÚµÄ¶Á/д²Ù×÷¡£
(3) ¿ØÖÆ×ּĴæÆ÷¡£ÔÚ¶Ô8253 ½øÐгõʼ»¯±à³Ìʱ£¬¸Ã¼Ä´æÆ÷´æ·ÅÓÉCPU дÈëµÄ¿ØÖÆ×Ö£¬
ÓÉ´Ë¿ØÖÆ×ÖÀ´¾ö¶¨ËùÑ¡ÖÐͨµÀµÄ¹¤×÷·½Ê½¡£´Ë¼Ä´æÆ÷Ö»ÄÜдÈë²»ÄܶÁ³ö¡£
(4) ¼ÆÊýÆ÷0£¬¼ÆÊýÆ÷1£¬¼ÆÊýÆ÷2¡£ÕâÊÇÈý¸ö¶ÀÁ¢µÄ¼ÆÊýÆ÷/¶¨Ê±Æ÷ͨµÀ£¬¸÷×Կɰ´²»
ͬµÄ¹¤×÷·½Ê½¹¤×÷¡£
ÿ¸öͨµÀÄÚ²¿¾ù°üº¬Ò»¸ö16 λ¼ÆÊý³õÖµ¼Ä´æÆ÷¡¢Ò»¸ö16 λ¼õ·¨¼ÆÊýÆ÷ºÍÒ»¸ö16 Î»Ëø
´æÆ÷¡£ÆäÖУ¬¼ÆÊý³õÖµ¼Ä´æÆ÷ÓÃÀ´´æ·Å³õʼ»¯±à³ÌʱÓÉCPU дÈëµÄ¼ÆÊý³õÖµ¡£¼õ·¨¼ÆÊýÆ÷
´Ó¼ÆÊý³õÖµ¼Ä´æÆ÷ÖлñµÃ¼ÆÊý³õÖµ£¬½øÐмõ·¨¼ÆÊý£¬µ±Ô¤ÖÃÖµ¼õµ½Áã»ò1£¨ÊÓ¹¤×÷·½Ê½¶ø¶¨£©
ʱ£¬OUT Êä³ö¶ËµÄÊä³öÐźŽ«ÓÐËù±ä»¯¡£Õý³£¹¤×÷ʱ£¬Ëø´æÆ÷ÖеÄÄÚÈÝËæ¼õ·¨¼ÆÊýÆ÷µÄÄÚ
Èݶø±ä»¯£¬µ±ÓÐͨµÀËø´æÃüÁîʱ£¬Ëø´æÆ÷±ãËø¶¨µ±Ç°ÄÚÈÝÒÔ±ãCPU ¶ÁÈ¡£¬CPU ¿ÉÓÃÊäÈëÖ¸
Áî¶ÁÈ¡ÈÎÒ»¼ÆÊýÆ÷µÄµ±Ç°¼ÆÊýÖµ£¬Í¨µÀËø´æÆ÷ÖеÄÄÚÈݱ»CPU ¶Á×ßÖ®ºó£¬¾Í×Ô¶¯½â³ýËø´æ
¼ÌÐøËæ¼õ·¨¼ÆÊýÆ÷¶ø±ä»¯¡£
3£®8253 оƬ¹²Óм¸ÖÖ¹¤×÷·½Ê½£¿Ã¿ÖÖ¹¤×÷·½Ê½¸÷ÓÐÊ²Ã´ÌØµã£¿
½â´ð£º8253 ¹²ÓÐ6 ÖÖ¹¤×÷·½Ê½£¬¸÷¹¤×÷·½Ê½ÏµĹ¤×÷״̬ÊDz»Í¬µÄ£¬Êä³öµÄ²¨ÐÎÒ²²»Í¬¡£
·½Ê½0 ºÍ·½Ê½4 ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄÏà֮ͬ´¦ÊÇ£º
¢Ù µ±¿ØÖÆ×ÖдÈë¿ØÖÆ×ּĴæÆ÷£¬½Ó×ÅÔÙдÈë¼ÆÊý³õÖµºó£¬Í¨µÀ¿ªÊ¼¼õ1 ¼ÆÊý£¬ÒªÇó´Ë
ʱGATE ÐźÅÒ»Ö±±£³Ö¸ßµçƽ¡£
¢Ú ¼ÆÊýÆ÷Ö»¼ÆÒ»±é¡£µ±¼ÆÊýµ½0 ºó£¬Í¨µÀ²¢²»×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¼ÆÊý£¬Ö»ÓÐÔÚÓÃ
»§ÖØÐ±à³ÌдÈëеļÆÊýÖµºó£¬Í¨µÀ²Å¿ªÊ¼ÐµļÆÊý£¬Òò´ËÎÒÃÇ³ÆÆäΪÈí¼þ´¥·¢·½Ê½¡£
¢Û ͨµÀÊÇÔÚдÈë¼ÆÊýÖµºóµÄÏÂÒ»¸öʱÖÓÂö³å²Å½«¼ÆÊýÖµ×°Èë¼ÆÊýÆ÷¿ªÊ¼¼ÆÊý¡£Òò´Ë£¬
Èç¹ûÉèÖüÆÊý³õֵΪN£¬ÔòÊä³öÐźÅOUT ÊÇÔÚN£«l ¸öCLK ÖÜÆÚºó²ÅÓб仯¡£
¢Ü ÔÚ¼ÆÊý¹ý³ÌÖУ¬¿ÉÓÉÃÅ¿ØÐźÅGATE ¿ØÖÆÔÝÍ£¡£µ±GATE=0 ʱ£¬¼ÆÊýÔÝÍ££¬OUT Êä
³ö²»±ä£¬µ±GATE ±ä¸ßºó¼ÌÐø½Ó׿ÆÊý¡£
¢Ý ÔÚ¼ÆÊý¹ý³ÌÖпÉÒÔ¸Ä±ä¼ÆÊýÖµ¡£ÈôÊÇ8 λ¼ÆÊý£¬ÔÚдÈëеļÆÊýÖµºó£¬¼ÆÊýÆ÷½«Á¢
¼´°´ÐµļÆÊýÖµÖØÐ¿ªÊ¼¼ÆÊý¡£Èç¹ûÊÇ16 λ¼ÆÊý£¬ÔÚдÈëµÚÒ»¸ö×ֽں󣬼Æ
ÊýÆ÷Í£Ö¹¼ÆÊý£¬
ÔÚдÈëµÚ¶þ¸ö×ֽں󣬼ÆÊýÆ÷°´ÕÕеļÆÊýÖµ¿ªÊ¼¼ÆÊý£¬¼´¸Ä±ä¼ÆÊýÖµÊÇÁ¢¼´ÓÐЧµÄ¡£
ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄ²»Í¬Ö®´¦ÊÇ£º
¢Ù µ±¿ØÖÆ×ÖдÈë¿ØÖÆ×ּĴæÆ÷ºó£¬OUT Êä³öµÄ³õʼ״̬²»Í¬¡£·½Ê½0 ÊÇÓÉ¸ßµçÆ½±äµÍ
µçƽ£¬¶ø·½Ê½4 ÔòÊÇÓÉµÍµçÆ½±ä¸ßµçƽ¡£
¢Ú ¼ÆÊýµ½¡°0¡±Ê±OUT Êä³öµÄ±ä»¯²»Í¬¡£·½Ê½0 ÊÇʹOUT Êä³ö±ä¸ß²¢±£³Ö²»±äµÈ´ý
Ï´ÎÈí¼þ´¥·¢£¬·½Ê½4 ÔòÊÇʹOUT Êä³öÒ»¸öCLK µÄ¸ºÂö³åºó±ä¸ß²¢±£³Ö²»±äµÈ´ýÏ´ÎÈí ¼þ´¥·¢¡£
·½Ê½1 ºÍ·½Ê½5 ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄÏà֮ͬ´¦ÊÇ£º
¢Ù µ±¿ØÖÆ×ÖдÈë¿ØÖÆ×ּĴæÆ÷£¬½Ó×ÅÔÙдÈë¼ÆÊý³õÖµºó£¬Í¨µÀ²¢²»¿ªÊ¼¼ÆÊý£¬Ö»ÓÐÔÚ
GATE ÐźŴ¥·¢ÒÔºó£¬Í¨µÀ²Å¿ªÊ¼¼õ1 ¼ÆÊý£¬Òò´ËÎÒÃÇ³ÆÆäΪӲ¼þ´¥·¢·½Ê½¡£ ¢Ú µ±¼ÆÊýÆ÷¼ÆÊýµ½0 ºó£¬Í¨µÀ²¢²»×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¼ÆÊý£¬µ«ÊÇÈç¹ûGATE ÐźÅ
Ôٴδ¥·¢£¬Í¨µÀÔò×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¼ÆÊý¡£Ò²¾ÍÊÇ˵£¬GATE ÐźÅÿ´¥·¢Ò»´Î£¬Í¨µÀ¾Í
×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¼ÆÊýÒ»´Î¡£
¢Û ÔÚ¼ÆÊý¹ý³ÌÖУ¬CPU ¿É±à³Ì¸Ä±ä¼ÆÊýÖµ£¬µ«ÕâʱµÄ¼ÆÊý¹ý³Ì²»ÊÜÓ°Ï죬ֻÓе±ÔÙ´Î
ÓÉGATE ÐźŴ¥·¢Ê±£¬¼ÆÊýÆ÷²Å¿ªÊ¼°´ÐÂÊäÈëµÄ¼ÆÊýÖµ¼ÆÊý£¬¼´¸Ä±ä¼ÆÊýÖµÊÇÏ´ÎÓÐЧµÄ¡£
ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄ²»Í¬Ö®´¦ÊÇ£º
¢Ù ËäÈ»µ±¿ØÖÆ×ÖдÈë¿ØÖÆ×ּĴæÆ÷ºó£¬OUT Êä³öµÄ³õʼ״̬Ïàͬ£¬µ«ÔÚGATE ´¥·¢ÒÔ
ºó£¬OUT Êä³öµÄ״̬²»Í¬£¬·½Ê½1 ÊÇÓÉ¸ßµçÆ½±äµÍµçƽ£¬¶ø·½Ê½5 Ôò±£³ÖΪ¸ßµçƽ¡£
¢Ú ¼ÆÊýµ½¡°0¡±Ê±OUT Êä³öµÄ±ä»¯²»Í¬¡£·½Ê½1 ÊÇʹOUT Êä³ö±ä¸ß²¢±£³Ö²»±äµÈ´ý
Ï´ÎÓ²¼þ´¥·¢£¬·½Ê½5 ÔòÊÇʹOUT Êä³öÒ»¸öCLK ÖÜÆÚµÄ¸ºÂö³åºó±ä¸ß²¢±£³Ö²»±äµÈ´ýÏ ´ÎÓ²¼þ´¥·¢¡£
·½Ê½2 ºÍ·½Ê½3 ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄÏà֮ͬ´¦ÊÇ£º
¢Ù µ±¿ØÖÆ×ÖдÈë¿ØÖÆ×ּĴæÆ÷ºó£¬OUT Êä³öµÄ³õʼ״̬Ïàͬ¶¼ÊÇÓɵͱä¸ß¡£½Ó×ÅÔÙд
Èë¼ÆÊý³õÖµºó£¬Í¨µÀ¿ªÊ¼¼õ1 ¼ÆÊý£¬ÒªÇó´ËʱGATE ÐźÅÒ»Ö±±£³Ö¸ßµçƽ¡£ ¢Ú µ±¼ÆÊýµ½1 »ò0 ºó£¬Í¨µÀ»á×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¿ªÊ¼¼ÆÊý£¬´Ó¶ø²úÉúÁ¬ÐøÖÜÆÚÐÔ
Êä³ö²¨ÐΣ¬Èç¹ûÉèÖüÆÊý³õֵΪN£¬ÔòÖÜÆÚΪN ¸öCLK¡£
¢Û ÔÚ¼ÆÊý¹ý³ÌÖУ¬¿ÉÓÉÃÅ¿ØÐźÅGATE ¿ØÖÆÍ£Ö¹¼ÆÊý¡£µ±GATE=0 ʱ£¬Í£Ö¹¼ÆÊý£¬OUT
Êä³ö±ä¸ß£¬µ±GATE ±ä¸ßºó£¬¼ÆÊýÆ÷½«ÖØÐÂ×°Èë¼ÆÊý³õÖµ¿ªÊ¼¼ÆÊý¡£
¢Ü ÔÚ¼ÆÊý¹ý³ÌÖпÉÒÔ¸Ä±ä¼ÆÊýÖµ£¬Èç¹û´ËʱGATE ά³ÖΪ¸ß£¬Õâ¶ÔÕýÔÚ½øÐеļÆÊý¹ý
³ÌûÓÐÓ°Ï죬µ«ÔÚ¼ÆÊýµ½1 »ò0 ºó£¬Í¨µÀ×Ô¶¯»Ö¸´¼ÆÊý³õÖµÖØÐ¿ªÊ¼¼ÆÊýʱ½«°´ÐµļÆÊýÖµ
¼ÆÊý¡£µ«Èç¹û´ËʱGATE ³öÏÖÉÏÉýÑØ£¬ÄÇô£¬ÔÚÏÂÒ»¸öCLK ÖÜÆÚ£¬ÐµļÆÊýÖµ½«±»×°Èë¼Æ
ÊýÆ÷¿ªÊ¼¼ÆÊý¡£
ÕâÁ½ÖÖ¹¤×÷·½Ê½µÄ²»Í¬Ö®´¦ÊÇ£º
¢Ù ·½Ê½2 µ±¼ÆÊýÆ÷¼õµ½1 ʱ£¬Êä³öOUT ±äµÍ£¬¾¹ýÒ»¸öCLK ÖÜÆÚºó»Ö¸´Îª¸ß£¬ÇÒ¼Æ
ÊýÆ÷¿ªÊ¼ÖØÐ¼ÆÊý¡£Èç¹û¼ÆÊý³õֵΪN£¬ÔòÊä³ö²¨ÐÎΪN-1 ¸öCLK ÖÜÆÚΪ¸ßµçƽ£¬Ò»¸öCLK ÖÜÆÚΪµÍµçƽ¡£
¢Ú ·½Ê½3 Êä³öΪ·½²¨£¬µ«Çé¿öÒ²ÓÐËù²»Í¬£º
Èô¼ÆÊýֵΪżÊý£¬ÔòÊä³öΪ±ê×¼·½²¨£¬N/2 ¸öCLK ÖÜÆÚΪ¸ßµçƽ£¬N/2 ¸öCLK ÖÜÆÚΪ
µÍµçƽ¡£Èç¹û¼ÆÊýÖµN ÊÇÆæÊý£¬ÔòÊä³öÓÐ(N+1)/2 ¸öCLK ÖÜÆÚΪ¸ßµçƽ£¬(N-1)/2 ¸öCLK ÖÜ
ÆÚΪµÍµçƽ£¬¼´OUT Ϊ¸ßµçƽ½«±ÈÆäΪµÍµçƽ¶àÒ»¸öCLK ÖÜÆÚʱ¼ä¡£
4£®ÈôÑ¡ÓÃ8253 ͨµÀ2£¬¹¤×÷ÔÚ·½Ê½1£¬°´¶þ½øÖƼÆÊý£¬¼ÆÊýֵΪ5432¡£Éè¶Ë¿ÚµØÖ·ÎªD8H¡«
DBH£¬Íê³É³õʼ»¯±à³Ì¡£Èç¹û¼ÆÊýÖµ¸ÄΪ65536 ÄØ£¿Èç¹û´ËʱÓÖÔöÑ¡8253 ͨµÀ0£¬¹¤×÷
ÔÚ·½Ê½0£¬°´BCD Âë¼ÆÊý£¬¼ÆÊýֵΪ2000£¬ÔÙÍê³É¶ÔͨµÀ0 µÄ³õʼ»¯±à³Ì¡£ ½â´ð£º±à³ÌÈçÏ¡£
MOV AL,1011 0010B;(B2H) MOV DX,00DBH OUT DX,AL MOV AX,5432 MOV DX,00DAH OUT DX,AL MOV AL,AH OUT DX,AL
;¼ÆÊýֵΪ65536
MOV AL,1011 0010B;(B2H) MOV DX,00DBH OUT DX,AL MOV AX,0000H MOV DX,00DAH OUT DX,AL OUT DX,AL £»Ôö¼ÓͨµÀ0
MOV AL,0010 0001B;(20H)/ 0011 0001B;(31H) MOV DX,00DBH OUT DX,AL
MOV AL,20H£»/00H MOV DX,00D8H OUT DX,AL£» £»/MOV AL,20H £»/OUT DX,AL
5£®Ä³Î¢»úϵͳÓëCRTͨѶÖУ¬²ÉÓÃÒì²½·½Ê½£¬ÀûÓÃ8253 оƬµÄͨµÀ1 ²úÉú·¢ËͺͽÓÊÕʱÖÓ£¬
ʱÖÓÆµÂÊΪ50KHz¡£Éè8253 µÄͨµÀ1 µÄCLK1=1.2288MHz£¬¶Ë¿ÚµØÖ·Îª80H¡«83H£¬ÊÔд
³ö8253 µÄ³õʼ»¯³ÌÐò¡£
½â´ð£ºTOUT=N* TCLK(»òfCLK=N*fOUT) N=1.2288MHz/50KHz=24.576 £»Ö»ÄÜÓ÷½Ê½3 À´²úÉúʱÖÓÐźŠMOV AL,0101 0110B;(56H) MOV DX,0083H OUT DX,AL MOV AL,25H MOV DX,81H
OUT DX,AL 6£®Ä³ÏµÍ³ÖÐCPU Ϊ8088£¬Íâ½ÓһƬ8253 оƬ£¬ÒªÇóͨµÀ2 Ìṩһ¸ö¶¨Ê±Æô¶¯Ðźţ¬¶¨Ê±
ʱ¼äΪ10ms£¬Í¨µÀ2 µÄ¹¤×÷ʱÖÓÆµÂÊΪ2MHz¡£Í¬Ê±ÔÚͨµÀ0 ½ÓÊÕÍⲿ¼ÆÊýʼþÊäÈ룬
¼ÆÂú100 ¸öÊä³öÒ»¸ö¸ºÂö³å¡£ÊÔÍê³ÉÓ²¼þÁ¬Ïߺͳõʼ»¯³ÌÐò¡£ ½â´ð£ºTOUT=N* TCLK(»òfCLK=N*fOUT) N=10 ms /(1/2MHz) =20000 £»2 ºÅ¼ÆÊýÆ÷
MOV AL,1011¡Á¡Á¡Á0B;(B0H) MOV DX,0083H OUT DX,AL MOV AX,20000 MOV DX,82H OUT DX,AL MOV AL,AH OUT DX,AL
;0 ºÅ¼ÆÊýÆ÷£¬Ö»ÄÜÓ÷½Ê½2
MOV AL,0001 ¡Á100B;(14H/1CH) MOV DX,0083H OUT DX,AL MOV AL,100 MOV DX,80H OUT DX,AL
7£®ÔÚ³ö×â³µ¼Æ¼ÛϵͳÖУ¬ÐèҪͳ¼Æ³µÂÖת¶¯µÄȦÊý£¬¼ÙÉèÒÑÓÐÒ»¸öÍⲿµç·£¬³µÂÖÿתһ
Ȧ¾Í¿ÉÒÔÊä³öÒ»¸öÂö³å£¬¸ù¾Ý¼Æ¼Û¹æÔò£¬³µÂÖÿת120 Ȧ£¬ÒªÍ¨ÖªCPU ½øÐÐÒ»´Î¼Æ¼Û¸ü
С£ÏÖÔÚϵͳÄâ²ÉÓÃ8253 ×÷Ϊ¼ÆÊýÆ÷ʹÓã¬CPU ²ÉÓÃ8086£¬ÊÔÍê³ÉÓ²¼þÉè
¼ÆºÍ8253 µÄ
³õʼ»¯¡££¨Íⲿµç·½ö±êÃ÷Êä³ö¶Ë¼´¿É£¬²»ÐèÉè¼Æ¾ßÌåµç·¡£²»Ðè½øÐÐCPU ·½ÃæµÄ¾ßÌ弯
¼Û¼ÆË㣬½ö֪ͨCPU ¼´¿É£© ½â´ð£º
8£®ÏÖÔÚÒªÓÃһƬ8253 ½øÐÐÂö¿í²âÁ¿£¬Óû²âÁ¿µÄÂö¿í´óÔ¼ÊÇ1ms¡£´Ëʱ£¬Óû²âÁ¿µÄÂö³åÐźÅ
¿É½ÓÔÚ8253 ÏàӦͨµÀµÄÄĸöÒý½Å£¿²ÉÓÃʲô¹¤×÷·½Ê½£¿ÊÔÍê³É²âÁ¿ËùÐèµÄÓ²¼þºÍÈí¼þÉè
¼Æ£¨¼ÙÉèÌṩÓÐÁ½Â·Ê±ÖÓÐźſÉÒÔʹÓãº1MHz ºÍ10KHz£©¡£ CH06 ÊäÈëÊä³ö¿ØÖÆ Ï°ÌâÓë˼¿¼Ìâ
1£®CPU ÓëÍâÉèÖ®¼äµÄÊý¾Ý´«Êä¿ØÖÆ·½Ê½ÓÐÄļ¸ÖÖ£¿ºÎν³ÌÐò¿ØÖÆ·½Ê½£¿ËüÓÐÄÄÁ½ÖÖ»ù±¾·½
ʽ£¿Çë·Ö±ðÓÃÁ÷³ÌͼµÄÐÎʽÃèÊöÆä´¦Àí¹ý³Ì¡£
2£®²ÉÓÃÓòéѯ·½Ê½½«Êý¾ÝÇøDATA¿ªÊ¼µÄ100 ¸ö×Ö½ÚÊý¾ÝÔÚFCH¶Ë¿ÚÊä³ö£¬Éè״̬¶Ë¿ÚµØÖ·
ΪFFH£¬×´Ì¬×ÖµÄD0λΪ1 ʱ±íʾÍâÉè´¦ÓÚ¡°Ã¦¡±×´Ì¬¡£ÊÔ±àд²éѯ³ÌÐò¡£ 3£®ºÎνÖжÏÓÅÏȼ¶£¬Ëü¶ÔÓÚʵʱ¿ØÖÆÓÐʲôÒâÒ壿ÓÐÄļ¸ÖÖ¿ØÖÆÖжÏÓÅÏȼ¶µÄ·½Ê½£¿
4£®Ê²Ã´½ÐDMA ´«ËÍ·½Ê½? ÆäÖ÷Òª²½ÖèÊÇʲô£¿ÊԱȽÏDMA ´«Êä¡¢²éѯʽ´«Êä¼°ÖжϷ½
ʽ´«ÊäÖ®¼äµÄÓÅȱµãºÍÊÊÓó¡ºÏ?
5£®Ê²Ã´ÊÇÖжÏÏòÁ¿£¿ÖжÏÏòÁ¿±íµÄ¹¦ÄÜÊÇʲô£¿ÒÑÖªÖжÏÔ´µÄÖжÏÀàÐÍÂë·Ö±ðÊÇ84H ºÍ
FAH£¬ËüÃÇËù¶ÔÓ¦µÄÖжÏÏòÁ¿·Ö±ðΪ£º2000H:1000H, 3000H:4000H, ÕâЩÖжÏÏòÁ¿Ó¦·ÅÔÚ
ÖжÏÏòÁ¿±íµÄʲôλÖã¿ÈçºÎ´æ·Å£¿ ±à³ÌÍê³ÉÖжÏÏòÁ¿µÄÉèÖᣠ½â´ð£ºÖжÏÏòÁ¿----£»ÖжÏÏòÁ¿±í----¡£
84H µÄλÖãº210H~213H£»FAH µÄλÖãº3E8H~3EBH 0000£º210H 00 10 00 20 0000£º3E8H 00 40 00 30 PUSH DS
MOV DX,2000H MOV DS,DX MOV DX,1000H MOV AL,84H MOV AH,25H INT 21H £»
MOV DX,3000H MOV DS,DX MOV DX,4000H MOV AL,0FAH MOV AH,25H
INT 21H POP DS
6£®ÊÔ½áºÏ8086/8088CPU ¿ÉÆÁ±ÎÖжϵÄÏìÓ¦¹ý³Ì£¬ËµÃ÷ÏòÁ¿Ê½ÖжϵĻù±¾´¦Àí²½Öè¡£
½â´ð£º¢Å½Ó¿Ú·¢ÖжÏÇëÇóÐźţ¨ÖжÏÇëÇ󣩣¬ÈôÓÐÖжÏÓÅÏȼ¶Åб𣬽øÐÐÅÐÓÅ£»¢Æµ±Ç°Ö¸Áî
Ö´ÐÐÍêºó£¬CPU ½øÐÐÖжϻشð£¨ÖжÏÏìÓ¦£©£»¢ÇÖжÏÀàÐͺÅN ËÍCPU£»¢Èµ±Ç°µÄPSW¡¢CS¡¢
IP ÍÆÈë¶ÑÕ»£»¢ÉÇå³ýIF ºÍTF£»¢Ê£¨4*N£©×÷ΪIP£¬£¨4*N+2£©×÷ΪCS£»¢ËÖжÏ×Ó³ÌÐòÖ´ÐÐ
£¨ÖжϷþÎñ£©£»¢Ì¿ªÖжϣ»¢ÍIRET Ö¸ÁîʹIP¡¢CS ºÍPSW µ¯³ö¶ÑÕ»£»¢Î·µ»Ø±»ÖжϵijÌÐò £¨ÖжϷµ»Ø£©¡£
7£®ÔÚÖжÏÏìÓ¦×ÜÏßÖÜÆÚÖУ¬µÚÒ»¸öINTA Âö³åÏòÍⲿµç·˵Ã÷ʲô£¿µÚ¶þ¸öINTA Âö³åÄØ£¿
½â´ð£ºµÚÒ»¸öINTA Âö³å----
¡¤Ê¹IRR µÄËø´æ¹¦ÄÜʧЧ¡£(Ä¿µÄÊÇ·ÀÖ¹´ËʱÔÙÀ´Öжϵ¼ÖÂÖжÏÏìÓ¦µÄ´íÎó)£¬µ½µÚ¶þ¸ö
INTA ʱ»Ö¸´ÓÐЧ¡£
¡¤Ê¹ISR µÄÏàӦλÖÃ룬±íʾÒÑΪ¸ÃÖжÏÇëÇó·þÎñ¡£ ¡¤Ê¹IRR ÏàӦλÇå0¡£ µÚ¶þ¸öINTA Âö³å----
¡¤ËÍÖжÏÀàÐÍÂ룬ÖжÏÀàÐÍÂëÓÉÓû§±à³ÌºÍÖжÏÇëÇóÒý½ÅµÄ±àÂ빲ͬ¾ö¶¨£¬Ïê¼û±à³Ì²¿ ·Ö¡£
¡¤Èç¹û8259A ¹¤×÷ÔÚÖжÏ×Ô¶¯½áÊø·½Ê½£¬Ôò´ËʱÇå³ýISR µÄÏàӦλ¡£ 8£®Öжϴ¦ÀíµÄÖ÷Òª²½ÖèÓÐÄÄЩ£¿ÊÔ˵Ã÷ÿһ²½µÄÖ÷Òª¶¯×÷¡£
9£®Èç¹û8259A°´ÈçÏÂÅäÖ㺲»ÐèÒªICW4£¬µ¥Æ¬£¬ÖжÏÇëÇó±ßÑØ´¥·¢£¬ÔòICW1µÄֵΪ¶àÉÙ£¿¡£
ÈçÒªÇó²úÉúµÄÖжÏÀàÐÍÂëÔÚ70H~77HÖ®¼ä£¬ÔòICW2µÄÖµÊǶàÉÙ£¿ ½â´ð£ºICW1=¡Á¡Á¡Á1 0¡Á10B£»ICW2=0111 0¡Á¡Á¡ÁB
10£®ÔÚÉÏÌâÖУ¬¼ÙÉè8259A µÄ¶Ë¿ÚµØÖ·Îª00H ºÍ01H£¬²ÉÓÃÖжÏ×Ô¶¯½áÊø£¬¹Ì¶¨ÓÅÏȼ¶£¬
Íê³É¶Ô¸Ã8259A µÄ³õʼ»¯¡£ ½â´ð£º³õʼ»¯³ÌÐòÈçÏ¡£ MOV AL,¡Á¡Á¡Á1 0¡Á10B£» OUT 00H,AL£»ICW1 MOV AL,0111 0¡Á¡Á¡ÁB£» OUT 01H,AL£»ICW2
(MOV AL,0000 0¡Á11B;ICW4
OUT 01H,AL;ǰÌáICW1=¡Á¡Á¡Á1 0¡Á11B£© MOV AL,00H
OUT 00H,AL£»OCW2
11£®Èç¹û8259AÓÃÔÚ80386DXϵͳÖУ¬²ÉÓÃÒ»°ãµÄEOI£¬»º³åģʽ£¬Ö÷Ƭ£¬ÌØÊâȫǶÌ×·½Ê½£¬
ÔòICW4µÄÖµÊÇʲô£¿ ½â´ð£ºICW4=0001 1101B
12£®Èç¹ûOCW2µÈÓÚ67H£¬ÔòÔÊÐíºÎÖÖÓÅÏȼ¶²ßÂÔ£¿ÎªÊ²Ã´£¿ ½â´ð£º67H=0110 0111B£¬¹Ì¶¨ÓÅÏȼ¶¡£
13£®Ä³ÏµÍ³ÖÐCPUΪ8088£¬Íâ½ÓһƬ8259A×÷ΪÖжϿØÖÆÆ÷£¬Îå¸öÖжÏÔ´·Ö±ð´ÓIR0~IR4ÒÔ
Âö³å·½Ê½ÒýÈëϵͳ£¬ÖжÏÀàÐÍÂë·Ö±ðΪ48H~4CH£¬ÖжϷþÎñ×Ó³ÌÐòÈë¿ÚµÄÆ«ÒÆµØÖ··Ö±ð
Ϊ2500H£¬4080H£¬4C05H£¬5540HºÍ6FFFH£¬¶ÎµØÖ·¾ùÊÇ2000H£¬ÔÊÐíËüÃÇÒÔ·ÇÖжÏ×Ô
¶¯½áÊø·½Ê½£¬¹Ì¶¨ÓÅÏȼ¶¹¤×÷£¬ÇëÍê³É£º
¢Ù »³öÓ²¼þÁ¬½Óͼ£¬Ð´³ö´Ëʱ8259A µÄ¶Ë¿ÚµØÖ·£»
¢Ú ±àд8259A µÄ³õʼ»¯³ÌÐò£¬£¨°üÀ¨¶ÔÖжÏÏòÁ¿±íµÄÉèÖã©¡£
14£®Ä³ÏµÍ³ÖÐÉèÖÃÁ½Æ¬8259A¼¶ÁªÊ¹Ó㬴ÓƬ½ÓÖÁÖ÷ƬµÄIR2£¬Í¬Ê±£¬Á½Æ¬Ð¾Æ¬µÄIR3ÉÏ»¹·Ö
±ðÁ¬½ÓÁËÒ»¸öÖжÏÔ´£¬ÒªÇóµçƽ´¥·¢£¬ÆÕͨEOI½áÊø¡£±àдȫ²¿µÄ³õʼ»¯³ÌÐò¡££¨¶Ë¿ÚµØ Ö·¿ÉÓÃ×Ô¶¨£©
15£®Éè8253 µÄͨµÀ2 ¹¤×÷ÔÚ¼ÆÊý·½Ê½£¬Íⲿʼþ´ÓCLK2ÒýÈ룬ͨµÀ2 ¼ÆÂú500 ¸öÂö³åÏòCPU
·¢³öÖжÏÇëÇó£¬CPUÏìÓ¦ÕâÒ»ÖжϺóÖØÐÂдÈë¼ÆÊýÖµ£¬¿ªÊ¼¼ÆÊý£¬ÒÔºó±£³Öÿ2 ÃëÖÓÏò
CPU·¢³öÒ»¸öÖжÏÇëÇó¡£¼ÙÉèÌõ¼þÈçÏ£º ¢ÙÍⲿ¼ÆÊýʼþƵÂÊΪ1kHz£» ¢ÚÖжÏÀàÐÍÂëΪ54H£»
ÊÔÍê³ÉÓ²¼þÁ¬½Óͼ²¢±àдÍê³É¸ÃÈÎÎñµÄÈ«²¿³ÌÐò£¨°üÀ¨Ð¾Æ¬µÄ³õʼ»¯£¬ÖжÏÏòÁ¿µÄÉèÖã¬
ÖжϷþÎñ×Ó³ÌÐò£©¡£
16£®DMA ¿ØÖÆÆ÷8237A µÄÖ÷Òª¹¦ÄÜÊÇʲô?Æäµ¥×Ö½Ú´«Ê䷽ʽÓëÊý¾Ý¿é´«Ê䷽ʽÓÐʲô²» ͬ£¿
17£®Ä³8086 ϵͳÖÐʹÓÃ8237A Íê³É´Ó´æ´¢Æ÷µ½´æ´¢Æ÷µÄÊý¾Ý´«ËÍ£¬ÒÑÖªÔ´Êý¾Ý¿éÊ×µØÖ·µÄ
Æ«ÒÆµØÖ·ÖµÎª1000H£¬Ä¿±êÊý¾Ý¿éÊ×µØÖ·µÄÆ«ÒÆµØÖ·ÖµÎª2050H£¬Êý¾Ý¿é³¤¶ÈΪ1K ×Ö½Ú£¬
µØÖ·ÔöÁ¿Ð޸ġ£ÊÔ±àд³õʼ»¯³ÌÐò¡££¨¶Ë¿ÚµØÖ··Ö±ðΪ00H¡«0FH£©
18£®Ä³ÏµÍ³ÖÐʹÓÃ8237A ͨµÀ0 Íê³É´Ó´æ´¢Æ÷µ½ÍâÉè¶Ë¿ÚµÄÊý¾Ý´«ËÍÈÎÎñ(Êý¾Ý¿é´«Ê䷽ʽ)£¬
ÈôÒÑ֪оƬµÄ¶Ë¿ÚµØÖ··Ö±ðΪEEE0H¡«EEEFH£¬ÒªÇóͨ¹ýͨµÀ0 ½«´æ´¢Æ÷ÖÐÆ«ÒƵØÖ·Îª
1000H~10FFH µÄÄÚÈÝ´«Ë͵½ÏÔʾÆ÷Êä³ö£¬DREQ¡¢DACK ¾ùΪµÍÓÐЧ£¬¹Ì¶¨ÓÅÏȼ¶¡£ÊÔ
±àд³õʼ»¯³ÌÐò¡£