⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aasms.s43

📁 MSP430FE42X防窍电电表DEMO(编译器IAR3.42)
💻 S43
字号:
#include	"msp430xe42x.h"
            NAME ASMS_Process

            RSEG CODE
//extern unsigned int _FRACTIONAL_UNSIGNED_MUL(unsigned int operand1, unsigned int operand2);
            PUBLIC _FRACTIONAL_UNSIGNED_MUL
_FRACTIONAL_UNSIGNED_MUL:
            PUSH.W  SR
            DINT
            MOV     R12,&MPY
            MOV     R14,&OP2
            MOV     &RESLO,R12
            MOV     &RESHI,R13

            ADD     #4000h,R12
            ADDC    #0,R13

            RLA     R12
            RLC     R13

            MOV     R13,R12
            RETI


//extern unsigned int _FRACTIONAL_UNSIGNED_MUL1(unsigned int operand1, unsigned int operand2);
            PUBLIC _FRACTIONAL_UNSIGNED_MUL1
_FRACTIONAL_UNSIGNED_MUL1:
            PUSH.W  SR
            DINT
            MOV     R12,&MPY
            MOV     R14,&OP2
            MOV     &RESLO,R12
            MOV     &RESHI,R13

            ADD     #4000h,R12
            ADDC    #0,R13


            MOV     R13,R12
            RETI



//extern unsigned int FRACTIONAL_UNSIGNED_MUL(unsigned long operand1, unsigned int operand2);
//extern unsigned int _CURRENT_MUL(unsigned long operand1, unsigned long operand2);
            //PUBLIC _FRACTIONAL_UNSIGNED_MUL
            PUBLIC _CURRENT_MUL
//_FRACTIONAL_UNSIGNED_MUL:
_CURRENT_MUL:
            PUSH.W  SR
            DINT
            MOV     R12,&MPY
            MOV     R14,&OP2
            //MOV     &RESLO,R12
            MOV     &RESHI,R15

            MOV     R13,&MPY
            MOV     R14,&OP2

            MOV     &RESHI,R12
            ADD     &RESLO,R15
            ADDC    #0,R12
            ADD     #8000h,R15
            ADDC    #0,R12
            RETI
;==============================================
            PUBLIC _WKUP
_WKUP:      BIC #00F0H,10(SP);
            RET
;==============================================
            PUBLIC _BCD1INC
_BCD1INC:   CLRC
            DADD.B   #1,0(R12)
            RET
;==============================================
            PUBLIC _BCD2INC
_BCD2INC:   CLRC
            DADD.B   #1,0(R12)
            DADC.B   1(R12)
            RET
;==============================================
            PUBLIC _BCD3INC
_BCD3INC:   CLRC
            DADD.B   #1,0(R12)
            DADC.B   1(R12)
            DADC.B   2(R12)
            RET
;==============================================
            PUBLIC _BCD4INC
_BCD4INC:   CLRC
            DADD.B   #1,0(R12)
            DADC.B   1(R12)
            DADC.B   2(R12)
            DADC.B   3(R12)
            RET

            PUBLIC _BCD4INC10
_BCD4INC10: CLRC
            DADD.B   #10,0(R12)
            DADC.B   1(R12)
            DADC.B   2(R12)
            DADC.B   3(R12)
            BIC.B    #0F0H,3(R12)
            RET

            PUBLIC _SWAPB1
_SWAPB1     SWPB     R12
            RET

;==============================================
            PUBLIC _BCD1ADD
_BCD1ADD:   CLRC
            DADD.B   @R14,0(R12)
            RET
;==============================================
            PUBLIC _BCD2ADD
_BCD2ADD:   CLRC
            DADD.B   @R14+,0(R12)
            DADD.B   @R14,1(R12)
            RET
;==============================================
            PUBLIC _BCD3ADD
_BCD3ADD:   CLRC
            DADD.B   @R14+,0(R12)
            DADD.B   @R14+,1(R12)
            DADD.B   @R14,2(R12)
            RET
;==============================================
            PUBLIC _BCD4ADD
_BCD4ADD:   CLRC
            DADD.B   @R14+,0(R12)
            DADD.B   @R14+,1(R12)
            DADD.B   @R14+,2(R12)
            DADD.B   @R14,3(R12)
            RET
;==============================================
            PUBLIC _BCD4SUB
_BCD4SUB:   ADD.B    #066H,0(R12)
            INV.B    0(R12)
            ADD.B    #066H,1(R12)
            INV.B    1(R12)
            ADD.B    #066H,2(R12)
            INV.B    2(R12)
            ADD.B    #066H,3(R12)
            INV.B    3(R12)
            SETC
            DADD.B   @R14+,0(R12)
            DADD.B   @R14+,1(R12)
            DADD.B   @R14+,2(R12)
            DADD.B   @R14,3(R12)
            RET
;==============================================
            END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -