´ð£º
ANL A,#17H ;A=03H
ORL 17H,A ;(17H)=0011 0100 ¡Å 0000 0011=0011 0111 XRL A,@R0 ;A= 0000 0011 ¡Å 0011 0111 =0011 0100 CPL A ;A=1100 1011
7£®ÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬·Ö±ðÉè¼ÆÑÓʱΪ0.1s¡¢1sµÄ×Ó³ÌÐò¡£ ´ð£ºÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬Ôò»úÆ÷ÖÜÆÚΪ1us£¬ÑÓʱ×Ó³ÌÐòÊÇͨ¹ýÖ´ÐÐÖ¸ÁîÐòÁÐÖлúÆ÷ÖÜÆÚÊýÀ´´ïµ½£¬Èç¹ûÒª0.1s£¬¼´100ms£¬Ò²¾ÍÊÇ100000us£¬ËùÒÔÐèÒª»úÆ÷ÖÜÆÚÊý´ïµ½100000¡£ÒªÑÓʱ´ïµ½1S£¬¿Éͨ¹ý¶ÔÑÓʱΪ0.1ÃëµÄ×Ó³ÌÐòµ÷ÓÃ10´ÎÀ´ÊµÏÖ¡£
DELAY100MS: MOV R6,#200 ;1¸ö»úÆ÷ÖÜÆÚ D1: MOV R7,#250 ;1¸ö»úÆ÷ÖÜÆÚ D2: NOP ;1¸ö»úÆ÷ÖÜÆÚ
DJNZ R7,D2 ;2¸ö»úÆ÷ÖÜÆÚ£¬3*251=753
DJNZ R6,D1 ;2¸ö»úÆ÷ÖÜÆÚ£¬(1+753+2)*132=99792 RET ;2¸ö»úÆ÷ÖÜÆÚ£¬1+99792+2=99795,Ô¼100ms DELAY1S: MOV R7,#10 ;¼ÆÊý10´Î 1
LOOP: ACALL DELAY100MS ;ÑÓʱ100ms×Ó³ÌÐò 99795+2 DJNZ R7,LOOP ;δ´ïµ½10´ÎÔò¼ÌÐø 10*(2+99795+2) RET ;·µ»Ø2+10*(2+99795+2)=997992
8£®ÄÚ²¿RAM´Ó20Hµ¥Ôª¿ªÊ¼´¦ÓÐÒ»Êý¾Ý¿é£¬ÒÔODHΪ½áÊø±êÖ¾£¬ÊÔͳ¼Æ¸ÃÊý¾Ý¿éµÄ³¤¶È£¬½«¸ÃÊý¾Ý¿éË͵½ÍⲿÊý¾Ý´æ´¢Æ÷7E01H¿ªÊ¼µÄµ¥Ôª£¬²¢½«³¤¶È´æÈë7E00Hµ¥Ôª¡£
½â£º´Ó20HµÄÖ¸ÕëÓÃR0£¬´ÓÍⲿRAM7E01¿ªÊ¼µÄÖ¸ÕëÓÃDPTR£¬¼ÆÊýÆ÷ÓÃR7 MOV R7,#0 ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ
MOV R0,#20H ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ
MOV DPTR,#7E01H ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ CONT: MOV A,@R0 ;ȡƬÄÚRAMÖеÄÒ»¸ö×Ö½Ú MOVX @DPTR,A ;´æÈëÆ¬ÍâRAMÖ¸ÕëËùÖ¸µ¥Ôª INC R7 ;³¤¶È¼ÆÊýÆ÷¼Ó1
INC R0 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 INC DPTR ;ƬÍâRAMµØÖ·Ö¸Õë¼Ó1 CJNE A,#0DH,CONT ;δ´ïµ½½áÊø±êÖ¾ MOV A,R7 ;È¡¿é¼ÆÊý³¤¶ÈÖµ MOVX @DPTR,A ;±£´æ SJMP $ ;ÔÝÍ£ END
9£®ÄÚ²¿RAM´ÓDATA¿ªÊ¼µÄÇøÓòÖдæ·Å×Å10¸öµ¥×Ö½ÚÊ®½øÖÆÊý£¬ÇóÆäÀۼӺͣ¬²¢½«½á¹û´æÈëSUMºÍSUM+1µ¥Ôª¡£
½â£ºR7¼ÆÊý£¬R6±£´æÀۼӺ͸ß8룬R0ÓÃ×÷µØÖ·Ö¸Õë ORG 0000H LJMP MAIN ORG 100H SUM EQU 30H DATAA EQU 40H
MAIN: MOV R7,#10 ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ MOV R0,#DATAA ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ CLR A ;ÀÛ¼ÓÆ÷Çå0
MOV R6,A ;ÀÛ¼Ó½á¹ûµÄ¸ß8λ
CONT: ADD A,@R0 ;¼ÓRAMÖеÄÒ»¸ö×Ö½Úµ½ACC DA A
JNC NEXT ;ÈôÎÞ½øÎ»Ôò²»Óùܸß8λ INC R6 ;ÓнøÎ»£¬¸ß8λ¼Ó1
NEXT: INC R0 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 DJNZ R7,CONT ;δÍê¼ÌÐø MOV SUM,A ;±£´æµÍ8λ MOV SUM+1,R6 ;±£´æ¸ß8λ SJMP $ ;ÔÝÍ£ END
10£®ÄÚ²¿RAM´ÓDATA1ºÍDATA2µ¥Ôª¿ªÊ¼´¦´æ·Å×ÅÁ½¸öµÈ³¤µÄÊý¾Ý¿é£¬Êý¾Ý¿éµÄ³¤¶ÈÔÚLENµ¥ÔªÖС£Çë±à³Ì¼ì²éÕâÁ½¸öÊý¾Ý¿éÊÇ·ñÏàµÈ£¬ÈôÏàµÈ£¬½«0FFHдÈëRESULTµ¥Ôª£¬·ñÔò½«0дÈëRESULTµ¥Ôª¡£
½â£º´ÓDATA1¿ªÊ¼µÄÖ¸ÕëÓÃR0£¬´ÓDATA2¿ªÊ¼µÄÖ¸ÕëÓÃR1£¬¼ÆÊýÆ÷ÓÃR7 LEN EQU 10 DATA1 EQU 30H DATA2 EQU 40H RESULT EQU 50H
MOV R7,#LEN ;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ
MOV R0,#DATA1 ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ MOV R1,#DATA2 ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ
CONT: MOV A,@R0 ;ȡƬÄÚRAM R0ËùÖ¸µÄµÄÒ»¸ö×Ö½Ú
MOV 7FH,@R1 ;½«R1ËùÖ¸µ¥ÔªÄÚÈÝÈ¡µ½Æ¬ÄÚRAMµØÖ·7FHÖÐ CJNE A,7FH,NOEQ ;±È½Ï£¬²»ÏàµÈÔò½áÊø
INC R0 ;DATA1 RAMµØÖ·Ö¸Õë¼Ó1 INC R1 ;DATA2 RAMµØÖ·Ö¸Õë¼Ó1 DJNZ R7,CONT ;δÍ꣬¼ÌÐø MOV A,#0FFH ;ÏàµÈ,×¼±¸Ð´ÈëFFH SJMP DOWN ;תдÈë½á¹û´¦
NOEQ: MOV A,#0 ;²»ÏàµÈ,×¼±¸Ð´Èë00H DOWN: MOV RESULT,A ;±£´æ±È½Ï½á¹û±êÖ¾ SJMP $ ;ÔÝÍ£ END
11£®±àÖÆ³ÌÐò£¬½«ÄÚ²¿RAMÖÐM1¡¢M2¡¢M3ºÍM4µ¥ÔªÖеÄÎÞ·ûºÅÊýxl¡¢x2¡¢x3ºÍx4Ïà¼Ó£¬²¢°ÑºÍ´æÈëROºÍR1(R0ÖÐΪ¸ß8λ)ÖС£
½â£º
M1 EQU 30H M2 EQU 40H M3 EQU 45H M4 EQU 4FH
MOV A,M1 ;È¡µÚÒ»¸öÊý ADD A,M2 ;ÓëµÚ¶þ¸öÊýÏà¼Ó
JNC NEXT1 ;Èç¹ûÎÞ½øÎ»£¬Ôò×ªÒÆÖÁµÚÈý¸öÏà¼Ó MOV R0,#1 ;ÓнøÎ»£¬¸ß8λÖÃ1 NEXT1: ADD A,M3 ;ÓëµÚÈý¸öÊýÏà¼Ó