《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 解决方案 > MCS51辛普生积分程序源代码(ASM)

MCS51辛普生积分程序源代码(ASM)

2009-01-16
关键词: MCS51 源代码

MCS51辛普生积分程序源代码(ASM)

;辛普生积分程序
;入口    :DPTR,N,COUNT
;占用资源:ACC,R3,R4,R6,R7
;堆栈需求:2字节
;出口    :R3,R4

SJF      :MOV    R7,N
          MOVX   A,@DPTR
          INC    DPTR
          MOV    R4,A
          MOV    R3,#00H
          DEC    R7
SJF1     :MOVX   A,@DPTR
          INC    DPTR
          CLR    C
          RLC    A
          MOV    R6,A
          CLR    A
          RLC    A
          XCH    A,R7
          JNB    ACC.0,SJF2
          XCH    A,R6
          RLC    A
          XCH    A,R6
          XCH    A,R7
          RLC    A
          XCH    A,R7
SJF2     :XCH    A,R7
          XCH    A,R6
          ADD    A,R4
          MOV    R4,A
          MOV    A,R6
          ADDC   A,R3
          MOV    R3,A
          DJNZ   R7,SJF1
SJF3     :MOVX   A,@DPTR
          ADD    A,R4
          MOV    R4,A
          CLR    A
          ADDC   A,R3
          MOV    R3,A
          MOV    R7,#COUNT
          LCALL  NMUL21
          MOV    A,N
          MOV    B,#03H
          MUL    AB
          MOV    R7,A
          LCALL  NDIV31
          RET

NMUL21   :MOV    A,R4
          MOV    B,R7
          MUL    AB
          MOV    R4,A
          MOV    A,B
          XCH    A,R3
          MOV    B,R7
          MUL    AB
          ADD    A,R3
          MOV    R3,A
          CLR    A
          ADDC   A,B
          MOV    R2,A
          CLR    OV
          RET

NDIV31   :MOV    B,#10H
NDV311   :CLR    C
          MOV    A,R4
          RLC    A
          MOV    R4,A
          MOV    A,R3
          RLC    A
          MOV    R3,A
          MOV    A,R2
          RLC    A
          MOV    R2,A
          MOV    F0,C
          CLR    C
          SUBB   A,R7
          JB     F0,NDV312
          JC     NDV313
NDV312   :MOV    R2,A
          INC    R4
NDV313   :DJNZ   B,NDV311
          RET

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。