3.14 ÒÑÖªM1ºÍM2µ¥ÔªÖдæ·ÅÓÐÁ½¸ö16λÎÞ·ûºÅÊýX1ºÍX2£¨µÍ8λÔÚǰ£¬¸ß8λÔÚºó£©ÊÔд³öX1+X2²¢°Ñ½á¹û·ÅÔÚM1ºÍM1+1µ¥Ôª£¨µÍ8λÔÚM1µ¥Ôª£¬¸ß8λÔÚM1+1µ¥Ôª£©µÄ³ÌÐò¡£ÉèÁ½ÊýÖ®ºÍ²»»á³¬¹ý16λ¡£ ³ÌÐòÈçÏ£º
ORG 0500H ;X1µÄÆðʼµØÖ·ËÍR0 MOV R0£¬#M1 ;X2µÄÆðʼµØÖ·R1 MOV R1£¬#M2 ;A?X1µÄµÍ8λ
MOV A£¬@R0 ;A?X1µÍ8λ+X2µÍ8룬ÐγÉCy ADD A ,@R1 ;ºÍµÄµÍ8λ´æM1 MOV @R0£¬A ;Ð޸ĵØÖ·Ö¸ÕëR0 INC R0 £»Ð޸ĵØÖ·Ö¸ÕëR1 INC R1 £»A<--X1¸ß8λ
MOV A, @R0 £»A<--X1¸ß8λ+X2¸ß8λ+Cy ADDC A,@R1 £»ºÍµÄ¸ß8λ´æM1+1 MOV @R0£¬A £»Í£»ú SJMP $ END
3.19 ÒÑÖªÁ½¸ö8λÎÞ·ûºÅ³ËÊý·Ö±ð·ÅÔÚ30HºÍ31Hµ¥ÔªÖУ¬ÊÔ±à³öÁîËüÃÇÏà³Ë²¢°Ñ»ýµÄµÍ8λ·ÅÈë32Hµ¥ÔªÖС¢»ýµÄ¸ß8λ·ÅÈë33Hµ¥ÔªµÄ³ÌÐò¡£ ³ÌÐòÈçÏ£º ORG 0100H
MOV R0 ,#30H ;R0<--µÚÒ»¸ö³ËÊýµØÖ· MOV A ,@R0 ;A<--µÚÒ»¸ö³ËÊý INC R0 £»Ð޸ijËÊýµØÖ· MOV B,@R0 ;B<--µÚ¶þ¸ö³ËÊý MUL AB £»A X B =BA
INC R0 £»ÐÞ¸ÄÄ¿±êµ¥ÔªµØÖ· MOV @R0£¬A £»»ýµÄµÍ8λ--.>32H INC R0 £»ÐÞ¸ÄÄ¿±êµ¥ÔªµØÖ· MOV @R0£¬B £»»ýµÄ¸ß8λ--.>33H SJMP $ ;Í£»ú END
3.25 ÒÑÖªM1ºÍM1+1µ¥ÔªÖÐÓÐÒ»¸ö16λµÄ¶þ½øÖÆÊý£¨M1ÖÐΪµÍ8룩£¬Çëͨ¹ý±à³ÌÁîÆäÀ©´ó¶þ±¶£¨Éè¸ÃÊýÀ©´óºóСÓÚ65536£©¡£ ³ÌÐòÈçÏ£º ORG 1000H
CLR C ;Cy<--0
MOV R1 ,#M1 ;²Ù×÷ÊýµÍ8λµØÖ·ËÍR1 MOV A,@R1 ;A<--²Ù×÷ÊýµÍ8λ
RLC A £»µÍ8λ²Ù×÷Êý×óÒÆ£¬µÍλ²¹0 MOV @R1£¬A £»ËÍ»ØM1µ¥Ôª£¬CyÖÐΪ×î¸ßλ
INC R1 ; R1Ö¸ÏòM1+1µ¥Ôª MOV A,@R1 £»A<--²Ù×÷Êý¸ß8λ RLC A ;¸ß8λ²Ù×÷Êý×óÒÆ
MOV @R1 , A ;ËÍ»ØM1+1µ¥Ôª SJMP $ £»Í£»ú END
3.26 ÔÚM1ºÍM1+1µ¥ÔªÖÐÓÐÁ½¸öBCDÊý£¬Çëͨ¹ý±à³Ì½«ËüÃǽôËõ³ÉÒ»¸ö×Ö½Ú²¢·ÅÈëM1µ¥Ôª¡£ ³ÌÐòÈçÏ£º
ORG 0001H MOV R1£¬#M1 ;µØÖ·M1ËÍR1 MOV A,@R1 ;A<--M1ÖÐBCDÊý SWAP A, £»BCD1ÒÆÈë¸ß4λ INC R1 ;Ð޸ĵØÖ·Ö¸ÕëR1
ORL A,@R1 ;BCD1ºÍBCD2ºÏ²¢ºóËÍA MOV M1,A ;ËÍ»ØM1µ¥Ôª SJMP $ ;Í£»ú END
3.31 ÒÑÖª£ºÍⲿRAMÖÐÒÔDATA1(DATA1ÔÚ0Ò³ÄÚ)ΪÆðʼµØÖ·µÄÊý¾Ý¿éÒÔÁãΪ½áÊø±êÖ¾¡£ÊÔͨ¹ý±à³Ì½«Ö®´«Ë͵½ÒÔDATA2ΪÆðʼµØÖ·µÄÄÚ²¿RAMÇø¡£ ³ÌÐòÈçÏ£º
ORG 0500H
MOV R0£¬#DATA1 ;ÍⲿRAMÊý¾Ý¿éÆðʼµØÖ·ËÍR0 MOV R1£¬#DATA2 ;ÄÚ²¿RAMÊý¾Ý¿éÆðʼµØÖ·ËÍR1 LOOP: MOVX A,@R0 ;ÍⲿRAMÈ¡ÊýËÍA JZ DONE ;ÈôA=0£¬ÔòתDONE
MOV @R1£¬A ;ÈôA¡Ù0,Ôò¸øÄÚ²¿RAMËÍÊý INC R0 ;ÐÞ¸ÄÍⲿRAMµØÖ·Ö¸Õë INC R1 ;ÐÞ¸ÄÄÚ²¿RAMµØÖ·Ö¸Õë SJMP LOOP ;Ñ»· DONE £ºSJMP $ ;½áÊø END
3.32 ÊÔ±àÒ»³ÌÐòÁîÆ¬ÄÚRAMÖÐÒÔDATΪÆðʼµØÖ·µÄÊý¾Ý¿éÖÐÁ¬Ðø10¸öÎÞ·ûºÅÊýÏà¼Ó£¬²¢ÀÛ¼ÓË͵½SUMµ¥Ôª¡£ÕâÀïµÄÀÛ¼ÓºÍÊDz»¿¼ÂǽøÎ»µÄºÍ£¬ËùÒÔËüÃÇΪ¶þ½øÖÆ8λ¡£ ³ÌÐòÈçÏ£º
ORG 1000H
MOV R2£¬#0AH ;Êý¾Ý¿é³¤¶ÈËÍR2 MOV R0£¬#DAT ;Êý¾Ý¿éÆðʼµØÖ·ËÍR0 CLR A ;ÀÛ¼ÓÆ÷ÇåÁã LOOP:ADD A ,@R0 £»¼ÓÒ»¸öÊý
INC R0 ;Ð޸ļÓÊýµØÖ·Ö¸Õë DJNZ R2,LOOP ;ÈôR2-1¡Ù0,ÔòLOOP MOV SUM ,A ;´æºÍ SJMP $ ;½áÊø END
3.35 ÊÔÀûÓÃ×Ó³ÌÐò¼¼Êõ±à³öÁî20H¡ª2AH¡¢30H¡ª3EHºÍ40H¡ª4FHÈý¸ö×ÓÓòÇåÁãµÄ³Ì
Ðò¡£
ORG 1000H
MOV SP,#70H ;Áî¶ÑÕ»µÄÕ»µ×µØÖ·Îª70H MOV R0£¬#20H ;µÚÒ»ÇåÁãÇøÆðʼµØÖ·ËÍR0 MOV R2£¬#0BH ;µÚÒ»ÇåÁãÇøÆðʼµØÖ·ËÍR2 ACALL ZERO ;¸ø20H-2AHÇøÇåÁã
MOV R0£¬#30H ;µÚ¶þÇåÁãÇøÆðʼµØÖ·ËÍR0 MOV R2£¬#0FH ;µÚ¶þÇåÁãÇøµ¥ÔªÊýËÍR2 ACALL ZERO ;¸ø40H-4FHµ¥ÔªÇåÁã SJMP $ ;½áÊø ORG 1050H
ZERO:MOV @R0£¬#00H ;ÇåÁã
INC R0 ;ÐÞ¸ÄÇåÁãÇøÖ¸Õë
DJNZ R2,ZERO ;ÈôR2-1¡Ù0£¬ÔòZERO RET ;·µ»Ø END
3.10 ÊÔ±à³ö°ÑÍⲿRAMµÄ2050Hµ¥ÔªÖеÄÄÚÈÝÏཻ»»µÄ³ÌÐò¡£ ³ÌÐòÈçÏ£º
ORG 0500H
MOV DPTR,#2050H
MOVX A,@DPTR ;A<--(2050H)=X MOV R0£¬A ;´æÈëR0 MOV DPTR,#2060H
MOVX A,@DPTR ;A<--(2060H)=Y XCH A,R0 ;A?R0 MOVX @DPTR,A ;2060H<--X MOV A,R0 ;A<--Y MOV DPTR ,#2050H
MOVX @DPTR,A ;2050H<--Y SJMP $ END
4..2 Çë±àдÄܰÑ20Hµ¥ÔªÄÚÁ½¸öBCDÊý±ä»»³ÉÏàÓ¦µÄASCIIÂë²¢·ÅÔÚ21H(¸ßλBCDÊýµÄASCIIÂë)ºÍ22H£¨µÍλBCDÊýµÄASCIIÂ룩µ¥ÔªµÄ³ÌÐò¡£
³ÌÐòÈçÏ£º ORG 0500H
MOV R0£¬#22H ;R0<--22H
MOV @R0£¬#00H ;22Hµ¥ÔªÇåÁã
MOV A,20H ;20HÖÐBCDÊýËÍA XCHD A,@R0 ;µÍλBCDÊýÖÁ22H ORL 22H,#30H ;Íê³ÉµÍλBCDÊýת»» SWAP A ;¸ßλBCDÊýË͵Ö4λ ORL A ,#30H ;Íê³É¸ßλBCDÊýת»» MOV 21H, A ;´æÈë21Hµ¥Ôª SJMP $ ;½áÊø
END
4.4 ÒÑÖª20Hµ¥ÔªÖÐÓÐÒ»¸ö¶þ½øÖÆÊý£¬Çë±à³Ì°ÑËüת»»Îª3λBCDÊý£¬°Ñ°ÙλBCDÊýËÍÈëFIRSTµ¥ÔªµÄµÍ4λ£¬Ê®Î»ºÍ¸öλBCDÊý·ÅÔÚSECONDµ¥Ôª£¬Ê®Î»BCDÊýÔÚSECONDµ¥ÔªÖеĸß4λ¡£ ³ÌÐòÈçÏ£º
ORG 0200H FIRST DATA 30H SECOND DATA 31H
MOV A,20H ;±»³ýÊýËÍA MOV B,#64H ;³ýÊý100ËÍB DIV AB ;A%B=A----B
MOV FIRST ,A ;°ÙλBCDËÍFIRST MOV A,B ;ÓàÊý10ËÍB MOV B,#0AH ;³ýÊý10ËÍB DIV AB ;A%B=A---B SWAP A ;ʮλBCDË͸ß4λ
ORL A,B ;Íê³ÉʮλºÍ¸öλBCDÊý×°Åä MOV SECOND,A ;´æÈëSECONDµ¥Ôª SJMP $ ;½áÊø END
4.5 ÒÑÖªVARµ¥ÔªÄÚÓÐÒ»×Ô±äÁ¿X,Çë°´ÈçÏÂÌõ¼þ±à³öÇóº¯ÊýÖµY²¢½«Ëü´æÈëFUNCµ¥ÔªµÄ³ÌÐò¡£
1 X>0 Y= 0 X=0 -1 X<0
ÏÈ·ÖÖ§ºó¸³Öµ Ïȸ³Öµºó¸³Öµ ORG 0100H ORG 0100H VAR DATA 30H VAR DATA 30H FUNC DATA 31H FUNC DATA 31H
MOV A,VAR ;A<--X MOV A,VAR ;A<--X JZ DONE ;ÈôX=0£¬ÔòתDONE JZ DONE ;ÈôX=0£¬ÔòתDONE JNB ACC.7£¬POSI ;ÈôX>0£¬ÔòתPOSI MOV R0£¬#0FFH ;ÈôX¡Ù0,ÔòR0<--1 MOV A, #0FFH ;ÈôX<0.,ÔòA<-- -1 JB ACC.7£¬NEG ;ÈôX<0£¬ÔòתNEG SJMP DONE ;תDONE MOV R0£¬#01H ;ÈôX>0£¬R0<--1 POSI:MOV A,#01H ;A<--1 NEG :MOV A,R0 ;A<--R0 DONE:MOV FUNC ,A ;´æYÖµ DONE:MOV FUNC,A;´æYÖµ SJMP $ SJMP $ END END
4.7 ÒÑÖªÁ½¸ö´ø·ûºÅÊý·Ö±ð´æÈëONEºÍTWOµ¥Ôª£¬ÊÔ±à³Ì±È½ÏËüÃǵĴóС£¬²¢°Ñ´óÊý´æÈëMAXµ¥Ôª¡£ ³ÌÐòÈçÏ£º
ORG 0400H ONE DATA 30H