£¨1£©MOV AX£¬[BP][SI] £»Ô´²Ù×÷ÊýÎïÀíµØÖ·= 40001 H£¬Ö¸ÁîÖ´Ðкó£¨AX£©= 0000 H £¨2£©POP AX £»Ô´²Ù×÷ÊýÎïÀíµØÖ·= H£¬Ö¸ÁîÖ´Ðкó£¨AX£©= H £¨3£©MOV AL£¬[BX] £»Ô´²Ù×÷ÊýÓÐЧµØÖ·= H£¬Ö¸ÁîÖ´Ðкó£¨AL£©= H £¨4£©LEA DI£¬ARRAY £»Ô´²Ù×÷ÊýµÄѰַ·½Ê½ÊÇ £¬Ö¸ÁîÖ´Ðкó£¨DI£©= H £¨5£©DEC CX £»Ô´²Ù×÷ÊýµÄѰַ·½Ê½ÊÇ Á¢¼´Ñ°Ö· £¬Ö¸ÁîÖ´Ðкó£¨CX£©= FFFFH H 3¡¢Èô¸ø¶¨AHºÍBHµÄÖµÈçÏ£¬
£¨1£©£¨AX£©=A050H£¬£¨BX£©=AO50H £¨2£©£¨AX£©=8030H£¬£¨BX£©=2090H £¨3£©£¨AX£©=F880H£¬£¨BX£©=F990H £¨4£©£¨AX£©=0050H£¬£¨BX£©=0150H ÒÑÖªÏÂÁгÌÐò¶Î£¬°´ÎÞ·ûºÅÊý¼ÆË㣬˵Ã÷³ÌÐòµÄתÏò¡£
ADD AL£¬BL JZ L1 JC L2 CMP AH£¬BH JC L3 JZ L4 JMP L5
4¡¢ Éè(CS)=1000H£¬(DS)=2000H, (ES)=3000H, (SS)=4000H, (SP)=100H, (BX)=200H,(SI)=1, (20200H)=400H, (30200H)=1400H, (20202H)=0004, (20204H)=202H,(21400H)=1234H, (21405H)=5678H¡£Ö´ÐÐÏÂÁгÌÐò¶Î£¨×¢Ò⣺²»Êǵ¥ÌõÖ¸Á£¬Ìî¿Õ»Ø´ðÎÊÌ⣺ MOV BP£¬256 H
PUSH [BX]
£»Ô´²Ù×÷ÊýÎïÀíµØÖ·= H
£»£¨DI£©= H
£»Ô´×ֶεÄѰַ·½Ê½ÊÇ £»Ö¸ÁîÖ´Ðкó£¨SI£©= H £»Ä¿µÄ²Ù×÷ÊýÎïÀíµØÖ·= H £»£¨AX£©= H
£»Ä¿µÄ²Ù×÷ÊýÎïÀíµØÖ·= H
£»Ô´×ֶεÄѰַ·½Ê½ÊÇ Á¢¼´Ñ°Ö· £»Ö¸ÁîÖ´Ðкó£¨BP£©=0000
MOV DI£¬3[BX][SI] DEC SI INC [DI]
MOV AX£¬[DI]
ADD -2[BP]£¬AX
POP BX £»Ä¿µÄ²Ù×÷ÊýÎïÀíµØÖ·= H MOV AX£¬[BX+SI]
£»³ÌÐò¶ÎÖ´ÐÐÍêºó£¬£¨AX£©= H
5¡¢¼ÙÉ裨DS£©=2000H£¬£¨ES£©=3000H£¬£¨CX£©=0000H£¬£¨SS£©=1000H£¬£¨SP£©=0100H£¬£¨BX£©=0200H£¬
5
£¨SI£©=0001H£¬£¨DI£©=0010H£¬£¨BP£©=0100H£¬DISP=02H£¬£¨30202H£©=8090H£¬£¨10100H£©=00A0H£¬£¨20200H£©=12H£¬£¨20201H£©=34H£¬£¨20202H£©=78H£¬£¨20203H£©=56HÖ´ÐÐÏÂÁгÌÐò¶Î²¢·ÖÎöÖ¸ÁîÖ´ÐкóµÄ½á¹û£¬£¨×¢Ò⣺²»Êǵ¥ÌõÖ¸Á£¬°´¸ø³öµÄÒªÇóÌî¿Õ»Ø´ðÎÊÌ⣺
£¨1£©MOV AX£¬[BX][SI] £»Ô´²Ù×÷µÄѰַ·½Ê½ÊÇ »ùÖ·±äַѰַ £¬Ö¸ÁîÖ´Ðкó£¨BX£©= H
£¨2£©POP AX £»Ô´²Ù×÷µÄѰַ·½Ê½ÊÇ £¬Ö¸ÁîÖ´Ðкó£¨AX£©= H £¨3£©MOV AL£¬ES£ºDISP[BX] £»Ô´²Ù×÷µÄѰַ·½Ê½ÊÇ Ïà¶Ô¼Ä´æÆ÷Ѱַ £¬Ö¸ÁîÖ´Ðкó£¨AL£©= H
£¨4£©MOV CX£¬£¨0202H£© £»Ô´²Ù×÷ÊýµÄѰַ·½Ê½ÊÇ ¼Ä´æÆ÷Ѱַ £¬Ö¸ÁîÖ´Ðкó£¨CX£©= H
£¨5£©MOV AX£¬2000H £»Ô´²Ù×÷ÊýµÄѰַ·½Ê½ÊÇ Á¢¼´Ñ°Ö· £¬Ö¸ÁîÖ´Ðкó£¨AL£©= H
6¡¢ÊÔ±àд8251³õ»¯³ÌÐò£¬ ×Ö·ûΪ7λÊý¾Ýλ£¬ÆæÐ£Ñ飬1¸öֹͣλ¡£ÈôÿÃëÖÓ·¢ËÍ100¸ö
×Ö·û£¬ËüµÄ²¨ÌØÂʶàÉÙ£¿Éè²¨ÌØÂÊÒò×ÓΪ1£¬·¢ËÍÔÊÐí£¬½ÓÊÕÔÊÐí£¬´íÎó±êÖ¾¸´Î»£¬ÊÔ±àд³õʼ»¯³ÌÐòÊÇÆäÄÜʵÏÖ½ÓÊպͷ¢ËÍ´®ÐÐÊý¾Ý
ËÄ¡¢I/O½Ó¿ÚÉè¼ÆÌâ
1¡¢Ò»¸ö΢»úϵͳÖаüº¬ÒÔÏÂÆ÷¼þ£ºÎ¢´¦ÀíÆ÷8086һƬ£¬²¢ÐнӿÚ8255AһƬ£¨A¿Ú¡ª80H£¬B¿Ú¡ª81H£¬C¿Ú¡ª82H£¬¿ØÖƿڡª83H£©£¬ÏÖ½«8255AµÄA¿ÚÁ¬½ÓÒ»Êä³öÉ豸£¬¹¤×÷ÔÚ0·½Ê½¡£B¿ÚÁ¬½ÓÒ»ÊäÈëÉ豸£¬Ò²¹¤×÷ÔÚ0·½Ê½£¬C¿Úϰ벿ΪÊä³ö£¬Éϰ벿ΪÊäÈë¡£PC4×÷ΪÊä³öÉ豸µÄѡͨÊä³ö¶ËÇÒ¸ßµçÆ½ÓÐЧ¡£ÖжϿØÖÆÆ÷8259AһƬ£¨µØÖ·ºÅ£º60H£¬61H£©¡£¹¤×÷ÓÚ±ßÑØ´¥·¢·½Ê½£¬ÆÕͨȫǶÌ×ÖжÏÓÅÏȼ¶£¬ÎÞ»º³å£¬²ÉÓÃ×Ô¶¯ÖжϽáÊø·½Ê½£¬8259AµÄICW2¸ø¶¨Îª40H¡£ÇëÌî³äÏÂÃæ³ÌÐòÖеĿհ×Ïî £¨×¢Ò⣺¿ØÖÆ×ÖÖпÉ0¿É1λѡ0£¬8255δÓö˿ÚÉè³ÉÊäÈ뷽ʽ£©¡£
MOV AL, 1000 1010B £» 8255³õʼ»¯ OUT 83H , AL
MOV AL, 0001 0011B £» 8259A³õʼ»¯ ICW1 OUT 60H , AL MOV AL, 40H £» ICW2
OUT 61H , AL MOV AL, 0000 0011B £» ICW4 OUT 61H , AL
6
MOV AL , 1111 1110B £»OCW1£¬Ê¹IR1µÄÖжÏÇëÇó±»ÔÊÐí£¬ÆäËüλ±»ÆÁ±Î OUT 61H , AL
IN AL, 81H £» ´Ó8255µÄB¿Ú¶ÁÈëÊý¾Ý
MOV AL, 0000 1000B £» Óð´Î»ÖÃλ/¸´Î»·½Ê½PC4ʹѡͨÎÞЧ OUT 83H , AL POP AX
OUT 80H , AL £» ÓÉA¿ÚÊä³öÊý¾Ý
MOV AL, 0000 1001B £»Óð´Î»ÖÃλ/¸´Î»·½Ê½Ê¹PC4ѡͨÓÐЧ OUT 83H , AL
Èç¹û¶ÔÓ¦8259AµÄIR2ÖжÏÀàÐͺÅÊÇ 42H £»
ÖжϷþÎñ×Ó³ÌÐòµÄÈë¿ÚµØÖ·´æ·ÅÔÚÄÚ´æµÄ 00108H, 00109H , 0010AH, 0010BH µ¥ÔªÖС£ 2¡¢8253ÓëCPUºÍ74LS138ÒëÂëÆ÷µÄÓ²¼þµç·Á¬½ÓÈçͼËùʾ£¬Çë»Ø´ðÈçÏÂÎÊÌ⣺ £¨1£©¸ù¾Ý74LS138µÄÊäÈëÂß¼¼ÆËã³ö8253µÄËĸö¶Ë¿ÚµØÖ·¡£
£¨2£©µ±¼ÆÊýÆ÷0µÄCLK0ÊäÈëʱÖÓΪ1MHz£¬ÒªÇó¸ÃͨµÀOUT0Êä³öƵÂÊΪ10KHzµÄ·½²¨Âö³å£¬ÊÔ±àд³õʼ»¯³ÌÐò¡£
£¨3£©ÊÔ±àд³ÌÐò£¬ÒªÇó´Ó¼ÆÊýÆ÷1¶Á³ö¼ÆÊýÖµ£¬²¢½«¶Á³öµÄµ±Ç°¼ÆÊýÖµ±£´æÔÚBXÖС££¨×¢£º¿É0¿É1µÄλÉèÖÃΪ0£¬Ê±¼ä³£Êý°´¶þ½øÖƼÆË㣬³ÌÐò±ØÐëÓÐ×¢ÊÍ£¬ÎÞ×¢Êͼõ·Ö£©£¨Ã¿¸öСÌâ5·Ö£¬¹²15·Ö£©
µ½CPUÊý¾Ý×ÜÏß µ½CPU¿ØÖÆ×ÜÏß µ½CPUµØÖ·×ÜÏß D0-7 RD WR A0 A1 CLK0 GATE0 OUT0 A6 A5 + A7 G1 Y0 CS M/IO G2A G2B A4 C 8253 A3 B 74LS138 A2 A
´ð°¸£º1¡¢Y0=80-83H 2¡¢¼ÆÊý³õֵΪ£º100=64H ³ÌÐò£º
1¡¢ MOV AL£¬00110110B £»¹¤×÷·½Ê½ÉèÖÃ
OUT 83H£¬AL MOV AX£¬ 100 £»¼ÆÊýֵΪ100
7
OUT 80H£¬AL MOV AL£¬AH OUT 80H£¬AL
Èç°´Ö»¶ÁдµÍ8룬¿ØÖÆ×Ö¸ñʽÕýÈ·£¬³ÌÐòÕýÈ·Ò²µÃÈ«·Ö 2¡¢MOV AL£¬0100 XXX0H £»¹¤×÷·½Ê½ÉèÖÃ
OUT 83H£¬AL IN AL£¬ 81H MOV BL£¬AL IN AL£¬ 81H MOV BH£¬AL
3¡¢ÊÔ¶ÔÒ»¸ö8251½øÐгõʼ»¯±à³Ì£¬ÒªÇó¹¤×÷ÔÚÒì²½·½Ê½£¬7λÊý¾Ýλ£¬ÆæÐ£Ñ飬1¸öֹͣλ¡££¨Éè8251µÄ¿ØÖƿڵØÖ·Îª80H£¬Êý¾Ý¿ÚµØÖ·Îª81H£©£¬±àдÍê³É½ÓÊպͷ¢ËÍ10¸ö×Ö·ûµÄ½ÓÊÕ·¢³ÌÐò ´ð: ²éѯ½ÓÊÕ³ÌÐò£º
MOV AL£¬01011001B OUT 81H£¬AL
MOV AL£¬15H£»½ÓÊպͷ¢ËÍÔÊÐí OUT 81H£¬AL
MOV SI£¬OFFSETRDABUF £»½ÓÊÕËÍÊý¾ÝµØÖ·Ö¸Õëµ½SI MOV CX£¬COUNT £»½ÓÊÕ×Ö½ÚÊý
RW£º IN AL£¬81H £»¶Á״̬¿Ú£¨²éѯ½ÓÊÕ³ÌÐò£© TEST AL£¬02H
JZ RW £»²»Âú£¬Ôòתȥ¼ÌÐøµÈ´ý TEST AL£¬38H £»¼ì²é´íÎóÐźÅ
JZ ERROR £»ÓдíÎó³öÏÖ£¬×ª³ö´í´¦Àí IN AL£¬£¨80H£© MOV £¨SI£©£¬AL£»È¡Êý¾Ý
INC SI £»ËÍ·¢ËͼĴæÆ÷
LOOP RW £»Ã»·¢Íê¼ÌÐø×ªÈ¥·¢ËÍ
¡£¡£¡£¡£¡£¡£¡£ ²éѯ·¢ËͳÌÐò£º
8