bms_asm.lis

来自「mega16 ucos操作系统」· LIS 代码 · 共 621 行 · 第 1/3 页

LIS
621
字号
 008E 5991                      LD      R21,Y+
 0090 4991                      LD      R20,Y+
 0092 3991                      LD      R19,Y+
 0094 2991                      LD      R18,Y+
 0096 1991                      LD      R17,Y+
 0098 0991                      LD      R16,Y+
 009A F990                      LD      R15,Y+
 009C E990                      LD      R14,Y+
 009E D990                      LD      R13,Y+
 00A0 C990                      LD      R12,Y+
 00A2 B990                      LD      R11,Y+
 00A4 A990                      LD      R10,Y+
 00A6 9990                      LD      R9,Y+
 00A8 8990                      LD      R8,Y+
 00AA 7990                      LD      R7,Y+
 00AC 6990                      LD      R6,Y+
 00AE 5990                      LD      R5,Y+
 00B0 4990                      LD      R4,Y+
 00B2 3990                      LD      R3,Y+
 00B4 2990                      LD      R2,Y+
 00B6 1990                      LD      R1,Y+
 00B8 0990                      LD      R0,Y+
 00BA 1895                      RETI        ; Note: RET instead of RETI
 00BC           
 00BC           ;*******************************************************************************
 00BC           ;
 00BC           ;*******************************************************************************
 00BC           
 00BC           
 00BC           
 00BC           
 00BC           ;**********************************************************************************************
 00BC           ;*                                  uC/OS-Bms ADC ISR
 00BC           ;*                                 void OSBms_AdcISR(void)
 00BC           ;*
 00BC           ;* Description: This function is invoked when a character is received from the serial port
 00BC           ;*
 00BC           ;* Arguments  : none
 00BC           ;*
 00BC           ;* Note(s)    : 1) Pseudo code:
 00BC           ;*
 00BC           ;*                 Save all registers
 00BC           ;*                 OSIntNesting++
 00BC           ;*                 if (OSIntNesting == 1) {
 00BC           ;*                     OSTCBCur->OSTCBStkPtr = SP
 00BC           ;*                 }
 00BC           ;*                 OSView_AdcHandler();
 00BC           ;*                 OSIntExit();
 00BC           ;*                 Restore all registers
 00BC           ;*                 Return from interrupt;
 00BC           ;**********************************************************************************************
 00BC           
 00BC           
                                .area   text(rel)
                
 00BC           _OSBms_AdcISR::
 00BC           
 00BC 0A92                      ST      -Y,R0   
 00BE 1A92                      ST      -Y,R1
 00C0 2A92                      ST      -Y,R2
 00C2 3A92                      ST      -Y,R3
 00C4 4A92                      ST      -Y,R4
 00C6 5A92                      ST      -Y,R5
 00C8 6A92                      ST      -Y,R6
 00CA 7A92                      ST      -Y,R7
 00CC 8A92                      ST      -Y,R8
 00CE 9A92                      ST      -Y,R9
 00D0 AA92                      ST      -Y,R10
 00D2 BA92                      ST      -Y,R11
 00D4 CA92                      ST      -Y,R12
 00D6 DA92                      ST      -Y,R13
 00D8 EA92                      ST      -Y,R14
 00DA FA92                      ST      -Y,R15
 00DC 0A93                      ST      -Y,R16
 00DE 1A93                      ST      -Y,R17
 00E0 2A93                      ST      -Y,R18
 00E2 3A93                      ST      -Y,R19
 00E4 4A93                      ST      -Y,R20
 00E6 5A93                      ST      -Y,R21
 00E8 6A93                      ST      -Y,R22
 00EA 7A93                      ST      -Y,R23
 00EC 8A93                      ST      -Y,R24
 00EE 9A93                      ST      -Y,R25
 00F0 AA93                      ST      -Y,R26
 00F2 BA93                      ST      -Y,R27
 00F4 EA93                      ST      -Y,R30
 00F6 FA93                      ST      -Y,R31               
 00F8 0FB7                      IN      R16,SREG                    ; Save the SREG but with interrupts enabled
 00FA 0068                      SBR     R16,BIT07                    
 00FC 0A93                      ST      -Y,R16
 00FE 0EB7                      IN      R16,SPH
 0100 0A93                      ST      -Y,R16
 0102 0DB7                      IN      R16,SPL
 0104 0A93                      ST      -Y,R16
 0106           
 0106 00910000                  LDS     R16,_OSIntNesting           ; Notify uC/OS-II of ISR
 010A 0395                      INC     R16                         ;
 010C 00930000                  STS     _OSIntNesting,R16           ;
 0110           
 0110 0130                      CPI     R16,1                       ; if (OSIntNesting == 1) {
 0112 31F4                      BRNE    OSBms_AdcISR_1
 0114           
 0114 E0910000                  LDS     R30,_OSTCBCur               ;     OSTCBCur->OSTCBStkPtr = Y
 0118 F0910100                  LDS     R31,_OSTCBCur+1
 011C C193                      ST      Z+,R28
 011E D193                      ST      Z+,R29                      ; }
 0120           
 0120           OSBms_AdcISR_1:
 0120           
 0120 0E940000                  CALL    _OSBms_AdcISRHandler        ; Call uC/OS-Bms's Adc ISR Handler
 0124 0E940000                  CALL    _OSIntExit                  ; Notify uC/OS-II about end of ISR
 0128           
 0128 0991                      LD      R16,Y+
 012A 0DBF                      OUT     SPL,R16
 012C 0991                      LD      R16,Y+
 012E 0EBF                      OUT     SPH,R16
 0130 0991                      LD      R16,Y+
 0132 0F77                                      CBR     R16,BIT07
 0134 0FBF                      OUT     SREG,R16
 0136 F991                      LD      R31,Y+
 0138 E991                      LD      R30,Y+
 013A B991                      LD      R27,Y+
 013C A991                      LD      R26,Y+
 013E 9991                      LD      R25,Y+
 0140 8991                      LD      R24,Y+
 0142 7991                      LD      R23,Y+
 0144 6991                      LD      R22,Y+
 0146 5991                      LD      R21,Y+
 0148 4991                      LD      R20,Y+
 014A 3991                      LD      R19,Y+
 014C 2991                      LD      R18,Y+
 014E 1991                      LD      R17,Y+
 0150 0991                      LD      R16,Y+
 0152 F990                      LD      R15,Y+
 0154 E990                      LD      R14,Y+
 0156 D990                      LD      R13,Y+
 0158 C990                      LD      R12,Y+
 015A B990                      LD      R11,Y+
 015C A990                      LD      R10,Y+
 015E 9990                      LD      R9,Y+
 0160 8990                      LD      R8,Y+
 0162 7990                      LD      R7,Y+
 0164 6990                      LD      R6,Y+
 0166 5990                      LD      R5,Y+
 0168 4990                      LD      R4,Y+
 016A 3990                      LD      R3,Y+
 016C 2990                      LD      R2,Y+
 016E 1990                      LD      R1,Y+
 0170 0990                      LD      R0,Y+
 0172           
 0172 1895                      RETI
 0174           
 0174           
 0174           
 0174           ;**********************************************************************************************
 0174           ;*                                  uC/OS-Bms COM Rx ISR
 0174           ;*                                 void OSBms_RxISR(void)
 0174           ;*
 0174           ;* Description: This function is invoked when a character is received from the serial port
 0174           ;*
 0174           ;* Arguments  : none
 0174           ;*
 0174           ;* Note(s)    : 1) Pseudo code:
 0174           ;*
 0174           ;*                 Save all registers
 0174           ;*                 OSIntNesting++
 0174           ;*                 if (OSIntNesting == 1) {
 0174           ;*                     OSTCBCur->OSTCBStkPtr = SP
 0174           ;*                 }
 0174           ;*                 OSView_RxHandler();
 0174           ;*                 OSIntExit();
 0174           ;*                 Restore all registers
 0174           ;*                 Return from interrupt;
 0174           ;**********************************************************************************************
 0174           
 0174           
                                .area   text(rel)
                
 0174           _OSBms_RxISR::
 0174           
 0174 0A92                      ST      -Y,R0   
 0176 1A92                      ST      -Y,R1
 0178 2A92                      ST      -Y,R2
 017A 3A92                      ST      -Y,R3
 017C 4A92                      ST      -Y,R4
 017E 5A92                      ST      -Y,R5
 0180 6A92                      ST      -Y,R6
 0182 7A92                      ST      -Y,R7
 0184 8A92                      ST      -Y,R8
 0186 9A92                      ST      -Y,R9
 0188 AA92                      ST      -Y,R10
 018A BA92                      ST      -Y,R11
 018C CA92                      ST      -Y,R12
 018E DA92                      ST      -Y,R13
 0190 EA92                      ST      -Y,R14
 0192 FA92                      ST      -Y,R15
 0194 0A93                      ST      -Y,R16
 0196 1A93                      ST      -Y,R17
 0198 2A93                      ST      -Y,R18
 019A 3A93                      ST      -Y,R19
 019C 4A93                      ST      -Y,R20
 019E 5A93                      ST      -Y,R21
 01A0 6A93                      ST      -Y,R22
 01A2 7A93                      ST      -Y,R23
 01A4 8A93                      ST      -Y,R24
 01A6 9A93                      ST      -Y,R25
 01A8 AA93                      ST      -Y,R26

⌨️ 快捷键说明

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