反汇编得到除法算法
1.本算法是16位二进制数的带参除法运算
2.参数为被除数和除数,被除数高位R6、低位R7,除数高位R4、低位R5
3.返回结果为商和余数,商高位R6、低位R7,余数高位R4、低位R5
除法算法代码如下:
Q00FB: CLR F0 ;00FB C2 D5
MOV A,R4 ;00FD EC
JNB ACC.7,Q010A ;00FE 30 E7 09
CPL F0 ;0101 B2 D5
CLR A ;0103 E4
CLR C ;0104 C3
SUBB A,R5 ;0105 9D
MOV R5,A ;0106 FD
CLR A ;0107 E4
SUBB A,R4 ;0108 9C
MOV R4,A ;0109 FC
Q010A: MOV A,R6 ;010A EE
JNB ACC.7,Q0123 ;010B 30 E7 15
CPL F0 ;010E B2 D5
CLR A ;0110 E4
CLR C ;0111 C3
SUBB A,R7 ;0112 9F
MOV R7,A ;0113 FF
CLR A ;0114 E4
SUBB A,R6 ;0115 9E
MOV R6,A ;0116 FE
LCALL Q0131 ;0117 12 01 31
CLR C ;011A C3
CLR A ;011B E4
SUBB A,R5 ;011C 9D
MOV R5,A ;011D FD
CLR A ;011E E4
SUBB A,R4 ;011F 9C
MOV R4,A ;0120 FC
SJMP Q0126 ;0121 80 03
Q0123: LCALL Q0131 ;0123 12 01 31
Q0126: JNB F0,Q0130 ;0126 30 D5 07
CLR C ;0129 C3
CLR A ;012A E4
SUBB A,R7 ;012B 9F
MOV R7,A ;012C FF
CLR A ;012D E4
SUBB A,R6 ;012E 9E
MOV R6,A ;012F FE
Q0130: RET ;0130 22
Q0131: CJNE R4,#00H,Q013F ;0131 BC 00 0B
CJNE R6,#00H,Q0160 ;0134 BE 00 29
MOV A,R7 ;0137 EF
MOV B,R5 ;0138 8D F0
DIV AB ;013A 84
MOV R7,A ;013B FF
MOV R5,B ;013C AD F0
RET ;013E 22
Q013F: CLR A ;013F E4
XCH A,R4 ;0140 CC
MOV R0,A ;0141 F8
MOV B,#08H ;0142 75 F0 08
Q0145: MOV A,R7 ;0145 EF
ADD A,R7 ;0146 2F
MOV R7,A ;0147 FF
MOV A,R6 ;0148 EE
RLC A ;0149 33
MOV R6,A ;014A FE
MOV A,R4 ;014B EC
RLC A ;014C 33
MOV R4,A ;014D FC
MOV A,R6 ;014E EE
SUBB A,R5 ;014F 9D
MOV A,R4 ;0150 EC
SUBB A,R0 ;0151 98
JC Q0159 ;0152 40 05
MOV R4,A ;0154 FC
MOV A,R6 ;0155 EE
SUBB A,R5 ;0156 9D
MOV R6,A ;0157 FE
INC R7 ;0158 0F
Q0159: DJNZ B,Q0145 ;0159 D5 F0 E9
CLR A ;015C E4
XCH A,R6 ;015D CE
MOV R5,A ;015E FD
RET ;015F 22
Q0160: MOV A,R5 ;0160 ED
MOV R0,A ;0161 F8
MOV B,A ;0162 F5 F0
MOV A,R6 ;0164 EE
DIV AB ;0165 84
JB OV,Q0185 ;0166 20 D2 1C
MOV R6,A ;0169 FE
MOV R5,B ;016A AD F0
MOV B,#08H ;016C 75 F0 08
Q016F: MOV A,R7 ;016F EF
ADD A,R7 ;0170 2F
MOV R7,A ;0171 FF
MOV A,R5 ;0172 ED
RLC A ;0173 33
MOV R5,A ;0174 FD
JC Q017E ;0175 40 07
SUBB A,R0 ;0177 98
JNC Q0180 ;0178 50 06
DJNZ B,Q016F ;017A D5 F0 F2
RET ;017D 22
Q017E: CLR C ;017E C3
SUBB A,R0 ;017F 98
Q0180: MOV R5,A ;0180 FD
INC R7 ;0181 0F
DJNZ B,Q016F ;0182 D5 F0 EA
Q0185: RET
留着以后备用。