ADDC A,#00H XCH A,R3 MOV B,R6 MUL AB ADD A,R1 MOV R1,A MOV A,B ADDC A,R3 XCH A,R5 MOV R3,A MOV A,R2 MOV B,R7 MUL AB ADD A,R1 MOV R1,A MOV A,B ADDC A,R5 MOV R5,A CLR A ADDC A,#00H XCH A,R2 MOV B,R6
MUL AB ADD A,R5 MOV R5,A MOV A,B ADDC A,R2 XCH A,R1 MOV R2,A CLR OV RET
;N字节无符号数乘法程序 ([R0]*[R1])=([R0]) ;入口 :R0,R1,M,N
;占用资源:ACC,B,R2,R5,R6,R7,NCNT ;堆栈需求:2字节 ;出口 :R0
NMULMN :MOV A,M ADD A,R0 MOV R5,A XCH A,R1 XCH A,R5 ADD A,N XCH A,R0 MOV R6,A
MOV B,M MOV NCNT,B NMLMN1 :DEC R0 DEC R1 CLR A XCH A,@R1 MOV @R0,A
DJNZ NCNT,NMLMN1 MOV NCNT,B NMLMN2 :CLR A XCH A,@R0 MOV R2,A MOV A,R6 MOV R0,A MOV A,R5 MOV R1,A MOV R7,N CLR C
NMLMN3 :MOV A,R2 MOV B,@R1 INC R1 MUL AB
ADDC A,@R0 MOV @R0,A INC R0 MOV A,B ADDC A,@R0 MOV @R0,A DJNZ R7,NMLMN3 INC R0 INC R6
DJNZ NCNT,NMLMN2 MOV A,R0 CLR C SUBB A,M SUBB A,N MOV R0,A RET
;单字节无符号除法程序 (R2R3R4/R7)=(R2)R3R4 余数R7 ;入口 :R2,R3,R4,R7 ;占用资源:ACC,B,F0 ;堆栈需求:3字节 ;出口 :(R2),R3,R4,R7,OV NDIV31 :MOV A,R2
相关推荐: