΢»úÔ­Àí¸´Ï°Ìâ ÏÂÔØ±¾ÎÄ

CODE SEGMENT ASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,10 JAZ MAX1 MOV BL,BL ADD AL,AL ADD AL,AL ADD AL,BL JMP STORE MAX1: SUB AL,5 STORE: MOV RESUT,AL MOV AH,4CH INT 21H

CODE ENDS END START

6¡¢±à³ÌÇó½â1+2+3+4??+N<100ʱµÄ×î´óNÖµ¡£ CODE SEGMENT ASSUME CS:CODE

START: MOV AL,0 MOV BL,1 AGAIN: ADD AL,BL INC BL CMP AL,100 JB AGAIN DEC BL DEC BL MOV AL,BL MOV AH,4CH INT 21H CODE ENDS END START

7¡¢ÉèijÊäÈë½Ó¿Ú״̬¿ÚµØÖ·83H£¬Êý¾Ý¿ÚµØÖ·80H£¬µ±×´Ì¬¿ÚµÄD7Ϊ1ʱ¡£Êý¾Ý×¼±¸ºÃ£¬ÊÔÓòéѰʽ·½Ê½ÊäÈë10¸öÊý¾Ý£¬²¢½«Êý¾Ý´æÔÚBUF¿ªÊ¼µÄµ¥ÔªÖеijÌÐò£¬±àдÖ÷Òª³ÌÐò¶Î¡£

LEA SI,BUF MOV CX,10

WAIT: IN AL,83H TEST AL,80H JZ WAIT

IN AL,80H MOV [SI],AL INC SI DEC CX JNZ WAIT HLT

8¡¢ÉèijϵͳÖÐÓÐÁ½Æ¬8255оƬ£¬ÓÉ74LS138ÒëÂëÆ÷²úÉúÁ½¸öоƬµÄƬѡÐźţ¬ÒªÇ󣺵ÚһƬ8255£¨J1£©µÄA¿Ú¹¤×÷ÔÚ·½Ê½0Êä³ö£¬B¿Ú¹¤×÷ÔÚ·½Ê½0ÊäÈ룬C¿Ú¸ß4λÊä³ö£¬µÍ4λÊäÈ룬µÚ¶þƬ8255£¨J2£©µÄA¿Ú¹¤×÷ÔÚ·½Ê½0ÊäÈ룬B¿Ú¹¤×÷ÔÚ·½Ê½1Êä³ö£¬C¿Ú¸ß4λÊä³ö£¬µÍ4λΪB¿Ú¿ØÖÆÐźš££¨1£©ÊÔÖ¸³öÁ½Æ¬8255оƬ¸÷×ԵĶ˿ڵØÖ·£¨2£©ÊÔд³öÁ½Æ¬8255оƬ¸÷×Եķ½Ê½¿ØÖÆ×Ö£¨3£©ÊÔд³öÁ½Æ¬8255оƬ¸÷×Եijõʼ»¯³ÌÐò¡£ 1£©µÚһƬ

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 1 X X 1 1 1 0 0 0 138H A¿Ú 0 1 13AH B¿Ú 1 0 13CH C¿Ú 1 1 13EH CW¿Ú µÚ¶þƬ

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 1 X X 1 1 0 0 0 0 130H A¿Ú 0 1 132H B¿Ú 1 0 134H C¿Ú 1 1 136H CW¿Ú 2£©µÚһƬ 10000011B=83H µÚ¶þƬ 10010100B=94H 3) J1: MOV AL,83H MOV DX,13EH OUT DX,AL J2: MOV AL,94H MOV DX,136H OUT DX,AL

9¡¢ÓÃһƬ8255£¬PA0~PA7½Ó8ÕµµÆ£¬Ñ­»·ÁÁ£¬Ã¿ÕµÁÁ1Ã룬¶Ë¿ÚµØÖ·Îª0F8H~0FBH£¬ÒÑÖªÑÓʱ³ÌÐòDELAY¡£ ·ÖÎö£ºA¿ÚÊä³öµÍµçƽʱ£¬µÈ²Å»áÁÁ¡£ ¿ØÖÆ×Ö10000000B=80H

A¿ÚF8H,B¿ÚF9H,C¿ÚFAH,CW¿ÚFBH. MOV AL,80H OUT 0FBH,AL MOV AL,0FFH OUT 0F8H,AL

MOV AL,0FEH

AGAIN: OUT 0F8H,AL

CALL DELAY

ROL AL,1 JMP AGAIN

10¡¢ÓÉ8255A¿Ú¶ÁÈë2λBCDÂ룬½«ÆäλÖû¥»»£¨83--38£©£¬ºóÓÉB¿ÚÊä³ö£¬8255¿ØÖƿڵØÖ·Îª97H£¬ÊÔ±à³Ì³õʼ»¯³ÌÐò¡£ ¿ØÖÆ¿Ú 1001X00X=90H ³õʼ»¯³ÌÐò MOV AL,90H OUT 97H,AL IN AL,94H MOV CL,4 ROL AL,CL OUT 95H,AL

11¡¢ÈçͼËùʾ£¬Ê¹8255A¿ÚΪ¹¤×÷·½Ê½0Êä³ö£¬B¿ÚΪ¹¤×÷·½Ê½0ÊäÈ룬ÓÃÒ»×鿪¹ØÐźŽÓÈëB¿Ú£¬A¿ÚÊä³öÏß½ÓÖÁÒ»×é·¢¹â¶þ¼«¹Ü£¬Íê³ÉÓÿª¹â¿ØÖÆ·¢¹â¶þ¼«¹ÜÁÁÃðµÄ³õʼ»¯³ÌÐò¡£ A7 A6 A5 A4 A3 A2 A1 A0

0 1 0 0 0 0 0 0 40H A

0 1 41H B 1 0 42H C 1 1 43H CW

¿ØÖÆ×Ö 10000010B=82H ³õʼ»¯³ÌÐò MOV AL,82H