ORG 0000H AJMP MAIN ORG 001BH AJMP INT_0 ORG 0030H MAIN: MOV 70H,#00H MOV 71H,#00H MOV 72H,#00H MOV 73H,#00H SETB EA SETB EX0 MOV DPTR,#0FF82H MOV A,#0D1H MOVX @DPTR,A WAIT: MOVX A,@DPTR JB ACC.7,WAIT MOV A,#00H MOVX @DPTR,A MOV A,#2AH MOVX @DPTR,A LCALL DISP LP1: MOV DPTR,#0FF82H MOVX A,@DPTR ANL A,#3FH JZ LP1 LCALL KEY JBC F0,START AJMP LP1 START: MOV 30H,#09H MOV 31H,#60H MOV DPTR,#8300H MOVX @DPTR,A INT_0: MOVX A,@DPTR MOV R2,A MOV R3,30H MOV R4,31H LCALL MULD LCALL DV31 LCALL HBCD LCALL TRANS LCALL DISP MOV DPTR,#8700H MOV A,R2 MOVX @DPTR,A LP2: MOV DPTR,#0FF82H MOVX A,@DPTR ANL A,#3FH JZ LP2 LCALL GETKEY CJNE A,#0BH,YY AJMP MAIN YY: CJNE A,#0CH,RETURN2 AJMP START RETURN2: RETI KEY: LCALL GETKEY CJNE A,#0AH,RETURN1 SETB F0 AJMP RETURN1 RETURN1:RET ;双字节乘法子程序H2MUL_SUB,Page 6 ;入口条件:被乘数放在20H,21H;乘数放在22H,23H;乘数位数放在2AH ;出口条件:积数放在R4,R5,R6,R7 ;影响参数:A,R0,R1,R2,R4,R5,R6,R7 MULD: MOV R0,30H; MOV R1,31H MOV R2,A MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV R7,#00H MOV 2AH,#10H LOOP_D_M: MOV A,R4 ADD A,R4 MOV R4,A MOV A,R5 ADDC A,R5 MOV R5,A MOV A,R6 ADDC A,R6 MOV R6,A MOV A,R7 ADDC A,R7 MOV R7,A MOV A,R2 ADD A,R2 MOV R2,A MOV A,R3 ADDC A,R3 MOV R3,A JNC TO_LOOP0 MOV A,R4 ADD A,R0 MOV R4,A MOV A,R5 ADDC A,R1 MOV R5,A MOV A,R6 ADDC A,#00H MOV R6,A MOV A,R7 ADDC A,#00H MOV R7,A TO_LOOP0: DJNZ 2AH,LOOP_D_M RET DV31: CLR C MOV A,R3 SUBB A,R7 JC DV30 SETB OV RET DV30: MOV R2,#10H DM23: CLR C MOV A,R5 RLC A MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A MOV F0,C CLR C SUBB A,R7 ANL C,/F0 JC DM24 MOV R3,A INC R5 DM24: DJNZ R2,DM23 MOV A,R3 ADD A,R3 JC DM25 SUBB A,R7 JC DM26 DM25: INC R5 MOV A,R5 JNZ DM26 INC R4 DM26: CLR OV RET GETKEY: MOV A,#40H MOV DPTR,#0FF82H MOVX @DPTR,A MOV DPTR,#0FF80H MOVX A,@DPTR ANL A,#3FH MOV R4,A RET TRANS: MOV R0,#42H MOV R1,#70H MOV R7,#03H LAST:MOV A,@R0 ANL A,#0FH MOV @R1,A MOV A,@R0 ANL A,#0F0H SWAP A INC R1 MOV @R1,A INC R1 DEC R0 DJNZ R7,LAST RET HBCD: CLR A MOV 40H,A MOV 41H,A MOV 42H,A MOV R2,#10H HB3: MOV A,R5 RLC A MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,42H ADDC A,42H DA A MOV 42H,A MOV A,41H ADDC A,41H DA A MOV 41H,A MOV A,40H ADDC A,40H MOV 40H,A DJNZ R2,HB3 RET DISP: MOV DPTR,#0FF82H MOV A,#90H MOVX @DPTR,A MOV R1,#70H MOV R7,#04H MOV DPTR,#0FF80H LOOP:MOV A,@R1 ADD A,#05H MOVC A,@A+PC MOVX @DPTR,A INC R1 DJNZ R7,LOOP RET DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH END