反汇编得到除法算法
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