;原码有符号双字节乘法程序 (R3R4*R6R7)=(R5R2R3R4)
;入口: R3,R4,R6,R7
;占用资源: ACC,SR0,NMUL22
;堆栈需求: 4字节
;出口: R5,R2,R3,R4
IMUL : MOV A,R3
XRL A,R6
MOV C,ACC.7
MOV SR0,C
MOV A,R3
CLR ACC.7
MOV R3,A
MOV A,R6
CLR ACC.7
MOV R6,A
LCALL NMUL22
MOV A,R5
MOV C,SR0
MOV ACC.7,C
MOV R5,A
RET
-
-
xilinxue 发表于 2009/2/12 13:51:01
;原码有符号双字节除法程序 (R5R2R3R4/R6R7)=(R3R4) 余数(R6R7)
;入口: R5,R2,R3,R4
;占用资源: ACC,SR0,NDIV42
;堆栈需求: 6字节
;出口: R3,R4,R6,R7,OV
IDIV : MOV A,R5
XRL A,R6
MOV C,ACC.7
MOV SR0,C
MOV A,R5
CLR ACC.7
MOV R5,A
MOV A,R6
CLR ACC.7
MOV R6,A
LCALL NDIV42
MOV A,R3
JB ACC.7,IDIVE
JB OV,IDIVE
MOV C,SR0
MOV ACC.7,C
MOV R3,A
RET
IDIVE: SETB OV
RET
引用 xilinxue 2009/2/12 13:51:01 发表于2楼的内容