【正文】
3, 45H MOV R2, 44H MOV R1, 00D MOV R0, 17D LCALL MUL2BY2 MOV R3, 03H MOV R2, 0E9H LCALL DIV4BY2 LCALL DIV4BY2 MOV 40H, R4 MOV A,40H JNZ JJ0 MOV 40H,0AH 。最高位為零,不點(diǎn)亮JJ0: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, 00D MOV R2, 100D LCALL DIV4BY2 MOV 41H, R4 MOV A,41H JNZ JJ1 MOV A,40H 。次高位為0,先看最高位是否為不亮 SUBB A,0AH JNZ JJ1 MOV 41H,0AH 。最高位不亮,次高位也不亮JJ1: MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, 00D MOV R2, 10D LCALL DIV4BY2 MOV 42H, R4 MOV A,42H JNZ JJ2 MOV A,41H 。次次高位為0,先看次高位是否為不亮 SUBB A,0AH JNZ JJ2 MOV 42H,0AH 。次高位不亮,次次高位也不亮JJ2: MOV 43H, R0 POP B POP PSW POP ACC RET。****************************************************。* 兩字節(jié)無符號數(shù)乘法程序 *。****************************************************。 R7R6R5R4 = R3R2 * R1R0。MUL2BY2: CLR A MOV R7, A MOV R6, A MOV R5, A MOV R4, A MOV 46H, 10HMULLOOP1: CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3 MOV R5, A MOV A, R6 ADDC A, 00H MOV R6, A MOV A, R7 ADDC A, 00H MOV R7, AMULLOOP2: DJNZ 46H, MULLOOP1 RET。****************************************************。* 四字節(jié)/兩字節(jié)無符號數(shù)除法程序 *。****************************************************。R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余數(shù))。DIV4BY2: MOV 46H, 20H MOV R0, 00H MOV R1, 00HDIVLOOP1: MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A CLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, ADIVLOOP2: CPL C DJNZ 46H, DIVLOOP1 MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A RETbaojing: jnb ,stopw。。判斷是否到高位 sjmp zpanstopw: setb 。。。關(guān)電機(jī) retzpan: jb ,startw。。判斷是否到低位 retstartw: clr 。。開電機(jī) retdelay_250: push psw push 07h mov r7,033h。16delay_250_1: nop nop nop nop djnz r7,delay_250_1 pop 07h pop psw ret 。 END