您的位置:控制工程论坛网论坛 » 软件与程序 » MCS-51单片机实用子程序库 有符号乘除法运算

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2024年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

MCS-51单片机实用子程序库 有符号乘除法运算

xilinxue  发表于 2009/2/12 13:51:01      1279 查看 1 回复  [上一主题]  [下一主题]

手机阅读


;原码有符号双字节乘法程序 (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
1楼 0 0 回复
  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    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
    2楼 回复本楼

    引用 xilinxue 2009/2/12 13:51:01 发表于2楼的内容

总共 , 当前 /