您现在的位置是:首页 > 单片机

双字节二进制有符号数除法(补码)

2020-03-22 10:44:07

双字节二进制有符号数除法(补码)

入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
出口信息:OV=0时商在R2、R3中,OV=1时溢出。
影响资源:PSW、A、B、R1~R7 堆栈需求: 5字节


DIVS: LCALL MDS
PUSH PSW
LCALL DIVD
JNB OV,DVS1
POP ACC
RET
DVS1: POP PSW
MOV R4,#0
MOV R5,#0
MDSE: JB F0,MDS2
CLR OV
RET
MDS: CLR F0
MOV A,R6
JNB ACC.7,MDS1
CPL F0
XCH A,R7
CPL A
ADD A,#1
XCH A,R7
CPL A
ADDC A,#0
MOV R6,A
MDS1: MOV A,R2
JNB ACC.7,MDS3
CPL F0
MDS2: MOV A,R5
CPL A
ADD A,#1
MOV R5,A
MOV A,R4
CPL A
ADDC A,#0
MOV R4,A
MOV A,R3
CPL A
ADDC A,#0
MOV R3,A
MOV A,R2
CPL A
ADDC A,#0
MOV R2,A
MDS3: CLR OV
RET